Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2012-08-29 09:41:27 +0000
committerHenrik Rentz-Reichert2012-08-29 09:41:27 +0000
commit18cc09d5f5e436040173fa134d65ce2978fd757f (patch)
treeae72f55a7bf7ed1d1acb2175a93443e57a21a506
parent5c00207570bec7e4103b8033d21325e3d31d35da (diff)
downloadorg.eclipse.etrice-18cc09d5f5e436040173fa134d65ce2978fd757f.tar.gz
org.eclipse.etrice-18cc09d5f5e436040173fa134d65ce2978fd757f.tar.xz
org.eclipse.etrice-18cc09d5f5e436040173fa134d65ce2978fd757f.zip
[generator] added fsmtest language
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/.classpath8
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/.gitignore1
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/.project28
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/META-INF/MANIFEST.MF24
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/build.properties5
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/plugin.xml323
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/AbstractFSMtestUiModule.java247
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/FSMtestExecutableExtensionFactory.java29
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/AbstractFSMtestProposalProvider.java120
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/FSMtestParser.java106
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/PartialFSMtestContentAssistParser.java37
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g1958
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.tokens33
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtestLexer.java1198
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtestParser.java5273
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/internal/FSMtestActivator.java95
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/FSMtestUiModule.java15
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/contentassist/FSMtestProposalProvider.java12
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/labeling/FSMtestDescriptionLabelProvider.java27
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/labeling/FSMtestLabelProvider.java34
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/outline/FSMtestOutlineTreeProvider.java14
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/quickfix/FSMtestQuickfixProvider.java19
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/.classpath9
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/.gitignore2
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/.launch/Generate Language Infrastructure (org.eclipse.etrice.generator.fsmtest).launch18
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/.project34
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/META-INF/MANIFEST.MF35
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/build.properties6
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/plugin.xml17
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/AbstractFSMtestRuntimeModule.java172
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.ecore60
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.genmodel56
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.xmi342
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtestStandaloneSetupGenerated.java43
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/DestinationDeclaration.java51
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/FsmtestFactory.java133
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/FsmtestPackage.java1130
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/InitialDeclaration.java51
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/LoopsDeclaration.java51
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/Model.java43
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SeedDeclaration.java51
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SignalDeclaration.java132
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SourceDeclaration.java51
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/State.java51
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/StateDeclaration.java43
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/Testscript.java178
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/TransitionDeclaration.java114
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/DestinationDeclarationImpl.java173
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/FsmtestFactoryImpl.java226
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/FsmtestPackageImpl.java658
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/InitialDeclarationImpl.java173
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/LoopsDeclarationImpl.java177
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/ModelImpl.java167
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SeedDeclarationImpl.java177
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SignalDeclarationImpl.java345
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SourceDeclarationImpl.java173
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/StateDeclarationImpl.java167
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/StateImpl.java177
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/TestscriptImpl.java528
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/TransitionDeclarationImpl.java351
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/util/FsmtestAdapterFactory.java332
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/util/FsmtestSwitch.java349
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/FSMtestAntlrTokenFileProvider.java15
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/FSMtestParser.java39
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g767
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.tokens33
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtestLexer.java1198
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtestParser.java1837
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/serializer/FSMtestSemanticSequencer.java254
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/serializer/FSMtestSyntacticSequencer.java40
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/services/FSMtestGrammarAccess.java665
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/validation/AbstractFSMtestJavaValidator.java18
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtest.xtext55
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtestRuntimeModule.java11
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtestStandaloneSetup.java14
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/GenerateFSMtest.mwe2139
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/formatting/FSMtestFormatter.java65
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/generator/FSMtestGenerator.xtend15
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/scoping/FSMtestScopeProvider.java17
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/validation/FSMtestJavaValidator.java38
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/xtend-gen/org/eclipse/etrice/generator/generator/.FSMtestGenerator.java._tracebin0 -> 880 bytes
-rw-r--r--plugins/org.eclipse.etrice.generator.fsmtest/xtend-gen/org/eclipse/etrice/generator/generator/FSMtestGenerator.java11
-rw-r--r--tests/org.eclipse.etrice.generator.fsmtest.tests/.classpath8
-rw-r--r--tests/org.eclipse.etrice.generator.fsmtest.tests/.gitignore1
-rw-r--r--tests/org.eclipse.etrice.generator.fsmtest.tests/.project28
-rw-r--r--tests/org.eclipse.etrice.generator.fsmtest.tests/META-INF/MANIFEST.MF22
-rw-r--r--tests/org.eclipse.etrice.generator.fsmtest.tests/build.properties5
-rw-r--r--tests/org.eclipse.etrice.generator.fsmtest.tests/org.eclipse.etrice.generator.fsmtest.tests.launch13
-rw-r--r--tests/org.eclipse.etrice.generator.fsmtest.tests/src-gen/org/eclipse/etrice/generator/FSMtestInjectorProvider.java45
-rw-r--r--tests/org.eclipse.etrice.generator.fsmtest.tests/src-gen/org/eclipse/etrice/generator/FSMtestUiInjectorProvider.java16
90 files changed, 22021 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/.classpath b/plugins/org.eclipse.etrice.generator.fsmtest.ui/.classpath
new file mode 100644
index 000000000..e5fbd3dd2
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.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/plugins/org.eclipse.etrice.generator.fsmtest.ui/.gitignore b/plugins/org.eclipse.etrice.generator.fsmtest.ui/.gitignore
new file mode 100644
index 000000000..092357e47
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/.gitignore
@@ -0,0 +1 @@
+bin
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/.project b/plugins/org.eclipse.etrice.generator.fsmtest.ui/.project
new file mode 100644
index 000000000..d83d659fd
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.etrice.generator.fsmtest.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/plugins/org.eclipse.etrice.generator.fsmtest.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.generator.fsmtest.ui/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..889177498
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.etrice.generator.fsmtest.ui
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.etrice.generator.fsmtest.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.etrice.generator.fsmtest;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,
+ org.eclipse.xtext.builder,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types.ui,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.compare
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.etrice.generator.ui.contentassist,
+ org.eclipse.etrice.generator.ui.contentassist.antlr,
+ org.eclipse.etrice.generator.ui.internal
+Bundle-Activator: org.eclipse.etrice.generator.ui.internal.FSMtestActivator
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/build.properties b/plugins/org.eclipse.etrice.generator.fsmtest.ui/build.properties
new file mode 100644
index 000000000..e10dcceb6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.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/plugins/org.eclipse.etrice.generator.fsmtest.ui/plugin.xml b/plugins/org.eclipse.etrice.generator.fsmtest.ui/plugin.xml
new file mode 100644
index 000000000..2d8dfff2b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/plugin.xml
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="fsmtest"
+ id="org.eclipse.etrice.generator.FSMtest"
+ name="FSMtest Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.generator.FSMtest.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.etrice.generator.FSMtest.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.generator.FSMtest.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.etrice.generator.FSMtest.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.etrice.generator.FSMtest"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.etrice.generator.FSMtest"
+ name="FSMtest">
+ <keywordReference id="org.eclipse.etrice.generator.ui.keyword_FSMtest"/>
+ </page>
+ <page
+ category="org.eclipse.etrice.generator.FSMtest"
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.etrice.generator.FSMtest.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.etrice.generator.ui.keyword_FSMtest"/>
+ </page>
+ <page
+ category="org.eclipse.etrice.generator.FSMtest"
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.etrice.generator.FSMtest.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.etrice.generator.ui.keyword_FSMtest"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.etrice.generator.FSMtest"
+ name="FSMtest">
+ <keywordReference id="org.eclipse.etrice.generator.ui.keyword_FSMtest"/>
+ <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.etrice.generator.ui.keyword_FSMtest"
+ label="FSMtest"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.etrice.generator.FSMtest.validate"
+ name="Validate">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.etrice.generator.FSMtest.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.etrice.generator.FSMtest.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.etrice.generator.FSMtest.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.generator.FSMtest.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="fsmtest">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="fsmtest">
+ </resourceServiceProvider>
+ </extension>
+
+
+ <!-- marker definitions for org.eclipse.etrice.generator.FSMtest -->
+ <extension
+ id="fsmtest.check.fast"
+ name="FSMtest Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="fsmtest.check.normal"
+ name="FSMtest Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="fsmtest.check.expensive"
+ name="FSMtest 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.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+ </participant>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.etrice.generator.FSMtest"
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.etrice.generator.FSMtest.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.etrice.generator.ui.keyword_FSMtest"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.eclipse.etrice.generator.FSMtest"
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.etrice.generator.FSMtest.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.etrice.generator.ui.keyword_FSMtest"/>
+ <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.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.generator.FSMtest.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.etrice.generator.FSMtest.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for org.eclipse.etrice.generator.FSMtest -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.etrice.generator.ui.fsmtest.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.etrice.generator.ui.fsmtest.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.etrice.generator.ui.fsmtest.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.generator.FSMtest.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.etrice.generator.FSMtest.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.etrice.generator.FSMtest"
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.eclipse.etrice.generator.FSMtest.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.eclipse.etrice.generator.ui.keyword_FSMtest"/>
+ </page>
+ </extension>
+
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.eclipse.etrice.generator.FSMtest.compare.contentViewers"
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="fsmtest">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.eclipse.etrice.generator.FSMtest.compare.contentMergeViewers"
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="fsmtest" label="FSMtest Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.eclipse.etrice.generator.FSMtest.editors.documentProviders"
+ class="org.eclipse.etrice.generator.ui.FSMtestExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="fsmtest">
+ </provider>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/AbstractFSMtestUiModule.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/AbstractFSMtestUiModule.java
new file mode 100644
index 000000000..3e3f8ce6c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/AbstractFSMtestUiModule.java
@@ -0,0 +1,247 @@
+
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.etrice.generator.ui.FSMtestUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractFSMtestUiModule extends DefaultUiModule {
+
+ public AbstractFSMtestUiModule(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.etrice.generator.parser.antlr.internal.InternalFSMtestLexer.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.etrice.generator.ui.labeling.FSMtestLabelProvider.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.etrice.generator.ui.labeling.FSMtestDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return org.eclipse.etrice.generator.ui.outline.FSMtestOutlineTreeProvider.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.etrice.generator.ui.outline.FSMtestOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+ return org.eclipse.etrice.generator.ui.quickfix.FSMtestQuickfixProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+ return org.eclipse.etrice.generator.ui.contentassist.FSMtestProposalProvider.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.etrice.generator.ui.contentassist.antlr.FSMtestParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.etrice.generator.ui.contentassist.antlr.internal.InternalFSMtestLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.etrice.generator.ui.contentassist.antlr.internal.InternalFSMtestLexer.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.etrice.generator.ui.contentassist.antlr.internal.InternalFSMtestLexer.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.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation> bindIJavaSearchParticipation() {
+ return org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation.Yes.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.etrice.generator.ui.contentassist.antlr.PartialFSMtestContentAssistParser.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/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/FSMtestExecutableExtensionFactory.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/FSMtestExecutableExtensionFactory.java
new file mode 100644
index 000000000..885eb5662
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/FSMtestExecutableExtensionFactory.java
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import org.eclipse.etrice.generator.ui.internal.FSMtestActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class FSMtestExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return FSMtestActivator.getInstance().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return FSMtestActivator.getInstance().getInjector(FSMtestActivator.ORG_ECLIPSE_ETRICE_GENERATOR_FSMTEST);
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/AbstractFSMtestProposalProvider.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/AbstractFSMtestProposalProvider.java
new file mode 100644
index 000000000..6474b2b0e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/AbstractFSMtestProposalProvider.java
@@ -0,0 +1,120 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator.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 AbstractFSMtestProposalProvider extends TerminalsProposalProvider {
+
+ public void completeModel_Testscripts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTestscript_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTestscript_StateDeclaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTestscript_InitialDeclaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTestscript_LoopsDeclaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTestscript_SeedDeclaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTestscript_TransitionDeclarations(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 completeStateDeclaration_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeInitialDeclaration_Initial(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLoopsDeclaration_Val(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSeedDeclaration_Val(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSignalDeclaration_Port(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSignalDeclaration_Signame(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSignalDeclaration_IntVal(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSignalDeclaration_StrVal(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSourceDeclaration_Ref(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDestinationDeclaration_Ref(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransitionDeclaration_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransitionDeclaration_In(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransitionDeclaration_Out(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransitionDeclaration_Destination(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_Testscript(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_StateDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_InitialDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LoopsDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SeedDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SignalDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SourceDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_DestinationDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_TransitionDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/FSMtestParser.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/FSMtestParser.java
new file mode 100644
index 000000000..a937f50f9
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/FSMtestParser.java
@@ -0,0 +1,106 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator.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.etrice.generator.services.FSMtestGrammarAccess;
+
+public class FSMtestParser extends AbstractContentAssistParser {
+
+ @Inject
+ private FSMtestGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected org.eclipse.etrice.generator.ui.contentassist.antlr.internal.InternalFSMtestParser createParser() {
+ org.eclipse.etrice.generator.ui.contentassist.antlr.internal.InternalFSMtestParser result = new org.eclipse.etrice.generator.ui.contentassist.antlr.internal.InternalFSMtestParser(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.getSignalDeclarationAccess().getAlternatives_2(), "rule__SignalDeclaration__Alternatives_2");
+ put(grammarAccess.getTestscriptAccess().getGroup(), "rule__Testscript__Group__0");
+ put(grammarAccess.getStateDeclarationAccess().getGroup(), "rule__StateDeclaration__Group__0");
+ put(grammarAccess.getStateDeclarationAccess().getGroup_2(), "rule__StateDeclaration__Group_2__0");
+ put(grammarAccess.getInitialDeclarationAccess().getGroup(), "rule__InitialDeclaration__Group__0");
+ put(grammarAccess.getLoopsDeclarationAccess().getGroup(), "rule__LoopsDeclaration__Group__0");
+ put(grammarAccess.getSeedDeclarationAccess().getGroup(), "rule__SeedDeclaration__Group__0");
+ put(grammarAccess.getSignalDeclarationAccess().getGroup(), "rule__SignalDeclaration__Group__0");
+ put(grammarAccess.getSignalDeclarationAccess().getGroup_0(), "rule__SignalDeclaration__Group_0__0");
+ put(grammarAccess.getSignalDeclarationAccess().getGroup_2_0(), "rule__SignalDeclaration__Group_2_0__0");
+ put(grammarAccess.getSignalDeclarationAccess().getGroup_2_1(), "rule__SignalDeclaration__Group_2_1__0");
+ put(grammarAccess.getSourceDeclarationAccess().getGroup(), "rule__SourceDeclaration__Group__0");
+ put(grammarAccess.getDestinationDeclarationAccess().getGroup(), "rule__DestinationDeclaration__Group__0");
+ put(grammarAccess.getTransitionDeclarationAccess().getGroup(), "rule__TransitionDeclaration__Group__0");
+ put(grammarAccess.getModelAccess().getTestscriptsAssignment(), "rule__Model__TestscriptsAssignment");
+ put(grammarAccess.getTestscriptAccess().getNameAssignment_1(), "rule__Testscript__NameAssignment_1");
+ put(grammarAccess.getTestscriptAccess().getStateDeclarationAssignment_2(), "rule__Testscript__StateDeclarationAssignment_2");
+ put(grammarAccess.getTestscriptAccess().getInitialDeclarationAssignment_3(), "rule__Testscript__InitialDeclarationAssignment_3");
+ put(grammarAccess.getTestscriptAccess().getLoopsDeclarationAssignment_4(), "rule__Testscript__LoopsDeclarationAssignment_4");
+ put(grammarAccess.getTestscriptAccess().getSeedDeclarationAssignment_5(), "rule__Testscript__SeedDeclarationAssignment_5");
+ put(grammarAccess.getTestscriptAccess().getTransitionDeclarationsAssignment_6(), "rule__Testscript__TransitionDeclarationsAssignment_6");
+ put(grammarAccess.getStateAccess().getNameAssignment(), "rule__State__NameAssignment");
+ put(grammarAccess.getStateDeclarationAccess().getStatesAssignment_1(), "rule__StateDeclaration__StatesAssignment_1");
+ put(grammarAccess.getStateDeclarationAccess().getStatesAssignment_2_1(), "rule__StateDeclaration__StatesAssignment_2_1");
+ put(grammarAccess.getInitialDeclarationAccess().getInitialAssignment_1(), "rule__InitialDeclaration__InitialAssignment_1");
+ put(grammarAccess.getLoopsDeclarationAccess().getValAssignment_1(), "rule__LoopsDeclaration__ValAssignment_1");
+ put(grammarAccess.getSeedDeclarationAccess().getValAssignment_1(), "rule__SeedDeclaration__ValAssignment_1");
+ put(grammarAccess.getSignalDeclarationAccess().getPortAssignment_0_0(), "rule__SignalDeclaration__PortAssignment_0_0");
+ put(grammarAccess.getSignalDeclarationAccess().getSignameAssignment_1(), "rule__SignalDeclaration__SignameAssignment_1");
+ put(grammarAccess.getSignalDeclarationAccess().getIntValAssignment_2_0_1(), "rule__SignalDeclaration__IntValAssignment_2_0_1");
+ put(grammarAccess.getSignalDeclarationAccess().getStrValAssignment_2_1_1(), "rule__SignalDeclaration__StrValAssignment_2_1_1");
+ put(grammarAccess.getSourceDeclarationAccess().getRefAssignment_0(), "rule__SourceDeclaration__RefAssignment_0");
+ put(grammarAccess.getDestinationDeclarationAccess().getRefAssignment_1(), "rule__DestinationDeclaration__RefAssignment_1");
+ put(grammarAccess.getTransitionDeclarationAccess().getSourceAssignment_0(), "rule__TransitionDeclaration__SourceAssignment_0");
+ put(grammarAccess.getTransitionDeclarationAccess().getInAssignment_2(), "rule__TransitionDeclaration__InAssignment_2");
+ put(grammarAccess.getTransitionDeclarationAccess().getOutAssignment_4(), "rule__TransitionDeclaration__OutAssignment_4");
+ put(grammarAccess.getTransitionDeclarationAccess().getDestinationAssignment_5(), "rule__TransitionDeclaration__DestinationAssignment_5");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ try {
+ org.eclipse.etrice.generator.ui.contentassist.antlr.internal.InternalFSMtestParser typedParser = (org.eclipse.etrice.generator.ui.contentassist.antlr.internal.InternalFSMtestParser) 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 FSMtestGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(FSMtestGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/PartialFSMtestContentAssistParser.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/PartialFSMtestContentAssistParser.java
new file mode 100644
index 000000000..afea5d497
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/PartialFSMtestContentAssistParser.java
@@ -0,0 +1,37 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator.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 PartialFSMtestContentAssistParser extends FSMtestParser 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/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g
new file mode 100644
index 000000000..403766b45
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g
@@ -0,0 +1,1958 @@
+/*
+* generated by Xtext
+*/
+grammar InternalFSMtest;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+
+}
+
+@lexer::header {
+package org.eclipse.etrice.generator.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.etrice.generator.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.etrice.generator.services.FSMtestGrammarAccess;
+
+}
+
+@parser::members {
+
+ private FSMtestGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(FSMtestGrammarAccess 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().getTestscriptsAssignment()); }
+(rule__Model__TestscriptsAssignment)*
+{ after(grammarAccess.getModelAccess().getTestscriptsAssignment()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTestscript
+entryRuleTestscript
+:
+{ before(grammarAccess.getTestscriptRule()); }
+ ruleTestscript
+{ after(grammarAccess.getTestscriptRule()); }
+ EOF
+;
+
+// Rule Testscript
+ruleTestscript
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getTestscriptAccess().getGroup()); }
+(rule__Testscript__Group__0)
+{ after(grammarAccess.getTestscriptAccess().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().getNameAssignment()); }
+(rule__State__NameAssignment)
+{ after(grammarAccess.getStateAccess().getNameAssignment()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStateDeclaration
+entryRuleStateDeclaration
+:
+{ before(grammarAccess.getStateDeclarationRule()); }
+ ruleStateDeclaration
+{ after(grammarAccess.getStateDeclarationRule()); }
+ EOF
+;
+
+// Rule StateDeclaration
+ruleStateDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getStateDeclarationAccess().getGroup()); }
+(rule__StateDeclaration__Group__0)
+{ after(grammarAccess.getStateDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleInitialDeclaration
+entryRuleInitialDeclaration
+:
+{ before(grammarAccess.getInitialDeclarationRule()); }
+ ruleInitialDeclaration
+{ after(grammarAccess.getInitialDeclarationRule()); }
+ EOF
+;
+
+// Rule InitialDeclaration
+ruleInitialDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getInitialDeclarationAccess().getGroup()); }
+(rule__InitialDeclaration__Group__0)
+{ after(grammarAccess.getInitialDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLoopsDeclaration
+entryRuleLoopsDeclaration
+:
+{ before(grammarAccess.getLoopsDeclarationRule()); }
+ ruleLoopsDeclaration
+{ after(grammarAccess.getLoopsDeclarationRule()); }
+ EOF
+;
+
+// Rule LoopsDeclaration
+ruleLoopsDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getLoopsDeclarationAccess().getGroup()); }
+(rule__LoopsDeclaration__Group__0)
+{ after(grammarAccess.getLoopsDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSeedDeclaration
+entryRuleSeedDeclaration
+:
+{ before(grammarAccess.getSeedDeclarationRule()); }
+ ruleSeedDeclaration
+{ after(grammarAccess.getSeedDeclarationRule()); }
+ EOF
+;
+
+// Rule SeedDeclaration
+ruleSeedDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getSeedDeclarationAccess().getGroup()); }
+(rule__SeedDeclaration__Group__0)
+{ after(grammarAccess.getSeedDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSignalDeclaration
+entryRuleSignalDeclaration
+:
+{ before(grammarAccess.getSignalDeclarationRule()); }
+ ruleSignalDeclaration
+{ after(grammarAccess.getSignalDeclarationRule()); }
+ EOF
+;
+
+// Rule SignalDeclaration
+ruleSignalDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getGroup()); }
+(rule__SignalDeclaration__Group__0)
+{ after(grammarAccess.getSignalDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSourceDeclaration
+entryRuleSourceDeclaration
+:
+{ before(grammarAccess.getSourceDeclarationRule()); }
+ ruleSourceDeclaration
+{ after(grammarAccess.getSourceDeclarationRule()); }
+ EOF
+;
+
+// Rule SourceDeclaration
+ruleSourceDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getSourceDeclarationAccess().getGroup()); }
+(rule__SourceDeclaration__Group__0)
+{ after(grammarAccess.getSourceDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDestinationDeclaration
+entryRuleDestinationDeclaration
+:
+{ before(grammarAccess.getDestinationDeclarationRule()); }
+ ruleDestinationDeclaration
+{ after(grammarAccess.getDestinationDeclarationRule()); }
+ EOF
+;
+
+// Rule DestinationDeclaration
+ruleDestinationDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getDestinationDeclarationAccess().getGroup()); }
+(rule__DestinationDeclaration__Group__0)
+{ after(grammarAccess.getDestinationDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTransitionDeclaration
+entryRuleTransitionDeclaration
+:
+{ before(grammarAccess.getTransitionDeclarationRule()); }
+ ruleTransitionDeclaration
+{ after(grammarAccess.getTransitionDeclarationRule()); }
+ EOF
+;
+
+// Rule TransitionDeclaration
+ruleTransitionDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getGroup()); }
+(rule__TransitionDeclaration__Group__0)
+{ after(grammarAccess.getTransitionDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__SignalDeclaration__Alternatives_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getGroup_2_0()); }
+(rule__SignalDeclaration__Group_2_0__0)
+{ after(grammarAccess.getSignalDeclarationAccess().getGroup_2_0()); }
+)
+
+ |(
+{ before(grammarAccess.getSignalDeclarationAccess().getGroup_2_1()); }
+(rule__SignalDeclaration__Group_2_1__0)
+{ after(grammarAccess.getSignalDeclarationAccess().getGroup_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+rule__Testscript__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Testscript__Group__0__Impl
+ rule__Testscript__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getFsmtestKeyword_0()); }
+
+ 'fsmtest'
+
+{ after(grammarAccess.getTestscriptAccess().getFsmtestKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Testscript__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Testscript__Group__1__Impl
+ rule__Testscript__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getNameAssignment_1()); }
+(rule__Testscript__NameAssignment_1)
+{ after(grammarAccess.getTestscriptAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Testscript__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Testscript__Group__2__Impl
+ rule__Testscript__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getStateDeclarationAssignment_2()); }
+(rule__Testscript__StateDeclarationAssignment_2)
+{ after(grammarAccess.getTestscriptAccess().getStateDeclarationAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Testscript__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Testscript__Group__3__Impl
+ rule__Testscript__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getInitialDeclarationAssignment_3()); }
+(rule__Testscript__InitialDeclarationAssignment_3)
+{ after(grammarAccess.getTestscriptAccess().getInitialDeclarationAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Testscript__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Testscript__Group__4__Impl
+ rule__Testscript__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getLoopsDeclarationAssignment_4()); }
+(rule__Testscript__LoopsDeclarationAssignment_4)
+{ after(grammarAccess.getTestscriptAccess().getLoopsDeclarationAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Testscript__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Testscript__Group__5__Impl
+ rule__Testscript__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getSeedDeclarationAssignment_5()); }
+(rule__Testscript__SeedDeclarationAssignment_5)?
+{ after(grammarAccess.getTestscriptAccess().getSeedDeclarationAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Testscript__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Testscript__Group__6__Impl
+ rule__Testscript__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getTransitionDeclarationsAssignment_6()); }
+(rule__Testscript__TransitionDeclarationsAssignment_6)*
+{ after(grammarAccess.getTestscriptAccess().getTransitionDeclarationsAssignment_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Testscript__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Testscript__Group__7__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getSemicolonKeyword_7()); }
+
+ ';'
+
+{ after(grammarAccess.getTestscriptAccess().getSemicolonKeyword_7()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__StateDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__StateDeclaration__Group__0__Impl
+ rule__StateDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StateDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateDeclarationAccess().getStatesKeyword_0()); }
+
+ 'states:'
+
+{ after(grammarAccess.getStateDeclarationAccess().getStatesKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__StateDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__StateDeclaration__Group__1__Impl
+ rule__StateDeclaration__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StateDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateDeclarationAccess().getStatesAssignment_1()); }
+(rule__StateDeclaration__StatesAssignment_1)
+{ after(grammarAccess.getStateDeclarationAccess().getStatesAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__StateDeclaration__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__StateDeclaration__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StateDeclaration__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateDeclarationAccess().getGroup_2()); }
+(rule__StateDeclaration__Group_2__0)*
+{ after(grammarAccess.getStateDeclarationAccess().getGroup_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__StateDeclaration__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__StateDeclaration__Group_2__0__Impl
+ rule__StateDeclaration__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StateDeclaration__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateDeclarationAccess().getCommaKeyword_2_0()); }
+
+ ','
+
+{ after(grammarAccess.getStateDeclarationAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__StateDeclaration__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__StateDeclaration__Group_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StateDeclaration__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateDeclarationAccess().getStatesAssignment_2_1()); }
+(rule__StateDeclaration__StatesAssignment_2_1)
+{ after(grammarAccess.getStateDeclarationAccess().getStatesAssignment_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__InitialDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InitialDeclaration__Group__0__Impl
+ rule__InitialDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InitialDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInitialDeclarationAccess().getInitialKeyword_0()); }
+
+ 'initial:'
+
+{ after(grammarAccess.getInitialDeclarationAccess().getInitialKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__InitialDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__InitialDeclaration__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InitialDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInitialDeclarationAccess().getInitialAssignment_1()); }
+(rule__InitialDeclaration__InitialAssignment_1)
+{ after(grammarAccess.getInitialDeclarationAccess().getInitialAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__LoopsDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LoopsDeclaration__Group__0__Impl
+ rule__LoopsDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LoopsDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLoopsDeclarationAccess().getLoopsKeyword_0()); }
+
+ 'loops:'
+
+{ after(grammarAccess.getLoopsDeclarationAccess().getLoopsKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LoopsDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LoopsDeclaration__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LoopsDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLoopsDeclarationAccess().getValAssignment_1()); }
+(rule__LoopsDeclaration__ValAssignment_1)
+{ after(grammarAccess.getLoopsDeclarationAccess().getValAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SeedDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SeedDeclaration__Group__0__Impl
+ rule__SeedDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SeedDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSeedDeclarationAccess().getRandseedKeyword_0()); }
+
+ 'randseed:'
+
+{ after(grammarAccess.getSeedDeclarationAccess().getRandseedKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SeedDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SeedDeclaration__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SeedDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSeedDeclarationAccess().getValAssignment_1()); }
+(rule__SeedDeclaration__ValAssignment_1)
+{ after(grammarAccess.getSeedDeclarationAccess().getValAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SignalDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group__0__Impl
+ rule__SignalDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getGroup_0()); }
+(rule__SignalDeclaration__Group_0__0)?
+{ after(grammarAccess.getSignalDeclarationAccess().getGroup_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SignalDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group__1__Impl
+ rule__SignalDeclaration__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getSignameAssignment_1()); }
+(rule__SignalDeclaration__SignameAssignment_1)
+{ after(grammarAccess.getSignalDeclarationAccess().getSignameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SignalDeclaration__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getAlternatives_2()); }
+(rule__SignalDeclaration__Alternatives_2)?
+{ after(grammarAccess.getSignalDeclarationAccess().getAlternatives_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__SignalDeclaration__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group_0__0__Impl
+ rule__SignalDeclaration__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getPortAssignment_0_0()); }
+(rule__SignalDeclaration__PortAssignment_0_0)
+{ after(grammarAccess.getSignalDeclarationAccess().getPortAssignment_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SignalDeclaration__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getFullStopKeyword_0_1()); }
+
+ '.'
+
+{ after(grammarAccess.getSignalDeclarationAccess().getFullStopKeyword_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SignalDeclaration__Group_2_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group_2_0__0__Impl
+ rule__SignalDeclaration__Group_2_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group_2_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_0_0()); }
+
+ '='
+
+{ after(grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SignalDeclaration__Group_2_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group_2_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group_2_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getIntValAssignment_2_0_1()); }
+(rule__SignalDeclaration__IntValAssignment_2_0_1)
+{ after(grammarAccess.getSignalDeclarationAccess().getIntValAssignment_2_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SignalDeclaration__Group_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group_2_1__0__Impl
+ rule__SignalDeclaration__Group_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_1_0()); }
+
+ '='
+
+{ after(grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SignalDeclaration__Group_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SignalDeclaration__Group_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__Group_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getStrValAssignment_2_1_1()); }
+(rule__SignalDeclaration__StrValAssignment_2_1_1)
+{ after(grammarAccess.getSignalDeclarationAccess().getStrValAssignment_2_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SourceDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SourceDeclaration__Group__0__Impl
+ rule__SourceDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SourceDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSourceDeclarationAccess().getRefAssignment_0()); }
+(rule__SourceDeclaration__RefAssignment_0)
+{ after(grammarAccess.getSourceDeclarationAccess().getRefAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SourceDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SourceDeclaration__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SourceDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSourceDeclarationAccess().getColonKeyword_1()); }
+
+ ':'
+
+{ after(grammarAccess.getSourceDeclarationAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DestinationDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__DestinationDeclaration__Group__0__Impl
+ rule__DestinationDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__DestinationDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getDestinationDeclarationAccess().getHyphenMinusGreaterThanSignSpaceKeyword_0()); }
+
+ '-> '
+
+{ after(grammarAccess.getDestinationDeclarationAccess().getHyphenMinusGreaterThanSignSpaceKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__DestinationDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__DestinationDeclaration__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__DestinationDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getDestinationDeclarationAccess().getRefAssignment_1()); }
+(rule__DestinationDeclaration__RefAssignment_1)
+{ after(grammarAccess.getDestinationDeclarationAccess().getRefAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TransitionDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TransitionDeclaration__Group__0__Impl
+ rule__TransitionDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getSourceAssignment_0()); }
+(rule__TransitionDeclaration__SourceAssignment_0)
+{ after(grammarAccess.getTransitionDeclarationAccess().getSourceAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__TransitionDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TransitionDeclaration__Group__1__Impl
+ rule__TransitionDeclaration__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getInKeyword_1()); }
+
+ 'in:'
+
+{ after(grammarAccess.getTransitionDeclarationAccess().getInKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__TransitionDeclaration__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TransitionDeclaration__Group__2__Impl
+ rule__TransitionDeclaration__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getInAssignment_2()); }
+(rule__TransitionDeclaration__InAssignment_2)*
+{ after(grammarAccess.getTransitionDeclarationAccess().getInAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__TransitionDeclaration__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TransitionDeclaration__Group__3__Impl
+ rule__TransitionDeclaration__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getOutKeyword_3()); }
+
+ 'out:'
+
+{ after(grammarAccess.getTransitionDeclarationAccess().getOutKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__TransitionDeclaration__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TransitionDeclaration__Group__4__Impl
+ rule__TransitionDeclaration__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getOutAssignment_4()); }
+(rule__TransitionDeclaration__OutAssignment_4)*
+{ after(grammarAccess.getTransitionDeclarationAccess().getOutAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__TransitionDeclaration__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TransitionDeclaration__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getDestinationAssignment_5()); }
+(rule__TransitionDeclaration__DestinationAssignment_5)
+{ after(grammarAccess.getTransitionDeclarationAccess().getDestinationAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Model__TestscriptsAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModelAccess().getTestscriptsTestscriptParserRuleCall_0()); }
+ ruleTestscript{ after(grammarAccess.getModelAccess().getTestscriptsTestscriptParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getNameIDTerminalRuleCall_1_0()); }
+ RULE_ID{ after(grammarAccess.getTestscriptAccess().getNameIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__StateDeclarationAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getStateDeclarationStateDeclarationParserRuleCall_2_0()); }
+ ruleStateDeclaration{ after(grammarAccess.getTestscriptAccess().getStateDeclarationStateDeclarationParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__InitialDeclarationAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getInitialDeclarationInitialDeclarationParserRuleCall_3_0()); }
+ ruleInitialDeclaration{ after(grammarAccess.getTestscriptAccess().getInitialDeclarationInitialDeclarationParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__LoopsDeclarationAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getLoopsDeclarationLoopsDeclarationParserRuleCall_4_0()); }
+ ruleLoopsDeclaration{ after(grammarAccess.getTestscriptAccess().getLoopsDeclarationLoopsDeclarationParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__SeedDeclarationAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getSeedDeclarationSeedDeclarationParserRuleCall_5_0()); }
+ ruleSeedDeclaration{ after(grammarAccess.getTestscriptAccess().getSeedDeclarationSeedDeclarationParserRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Testscript__TransitionDeclarationsAssignment_6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTestscriptAccess().getTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0()); }
+ ruleTransitionDeclaration{ after(grammarAccess.getTestscriptAccess().getTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__NameAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0()); }
+ RULE_ID{ after(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StateDeclaration__StatesAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_1_0()); }
+ ruleState{ after(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StateDeclaration__StatesAssignment_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_2_1_0()); }
+ ruleState{ after(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__InitialDeclaration__InitialAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getInitialDeclarationAccess().getInitialStateCrossReference_1_0()); }
+(
+{ before(grammarAccess.getInitialDeclarationAccess().getInitialStateIDTerminalRuleCall_1_0_1()); }
+ RULE_ID{ after(grammarAccess.getInitialDeclarationAccess().getInitialStateIDTerminalRuleCall_1_0_1()); }
+)
+{ after(grammarAccess.getInitialDeclarationAccess().getInitialStateCrossReference_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LoopsDeclaration__ValAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLoopsDeclarationAccess().getValINTTerminalRuleCall_1_0()); }
+ RULE_INT{ after(grammarAccess.getLoopsDeclarationAccess().getValINTTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SeedDeclaration__ValAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSeedDeclarationAccess().getValINTTerminalRuleCall_1_0()); }
+ RULE_INT{ after(grammarAccess.getSeedDeclarationAccess().getValINTTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__PortAssignment_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getPortIDTerminalRuleCall_0_0_0()); }
+ RULE_ID{ after(grammarAccess.getSignalDeclarationAccess().getPortIDTerminalRuleCall_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__SignameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getSignameIDTerminalRuleCall_1_0()); }
+ RULE_ID{ after(grammarAccess.getSignalDeclarationAccess().getSignameIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__IntValAssignment_2_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getIntValINTTerminalRuleCall_2_0_1_0()); }
+ RULE_INT{ after(grammarAccess.getSignalDeclarationAccess().getIntValINTTerminalRuleCall_2_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SignalDeclaration__StrValAssignment_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSignalDeclarationAccess().getStrValSTRINGTerminalRuleCall_2_1_1_0()); }
+ RULE_STRING{ after(grammarAccess.getSignalDeclarationAccess().getStrValSTRINGTerminalRuleCall_2_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SourceDeclaration__RefAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSourceDeclarationAccess().getRefStateCrossReference_0_0()); }
+(
+{ before(grammarAccess.getSourceDeclarationAccess().getRefStateIDTerminalRuleCall_0_0_1()); }
+ RULE_ID{ after(grammarAccess.getSourceDeclarationAccess().getRefStateIDTerminalRuleCall_0_0_1()); }
+)
+{ after(grammarAccess.getSourceDeclarationAccess().getRefStateCrossReference_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__DestinationDeclaration__RefAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getDestinationDeclarationAccess().getRefStateCrossReference_1_0()); }
+(
+{ before(grammarAccess.getDestinationDeclarationAccess().getRefStateIDTerminalRuleCall_1_0_1()); }
+ RULE_ID{ after(grammarAccess.getDestinationDeclarationAccess().getRefStateIDTerminalRuleCall_1_0_1()); }
+)
+{ after(grammarAccess.getDestinationDeclarationAccess().getRefStateCrossReference_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__SourceAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getSourceSourceDeclarationParserRuleCall_0_0()); }
+ ruleSourceDeclaration{ after(grammarAccess.getTransitionDeclarationAccess().getSourceSourceDeclarationParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__InAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getInSignalDeclarationParserRuleCall_2_0()); }
+ ruleSignalDeclaration{ after(grammarAccess.getTransitionDeclarationAccess().getInSignalDeclarationParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__OutAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getOutSignalDeclarationParserRuleCall_4_0()); }
+ ruleSignalDeclaration{ after(grammarAccess.getTransitionDeclarationAccess().getOutSignalDeclarationParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TransitionDeclaration__DestinationAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionDeclarationAccess().getDestinationDestinationDeclarationParserRuleCall_5_0()); }
+ ruleDestinationDeclaration{ after(grammarAccess.getTransitionDeclarationAccess().getDestinationDestinationDeclarationParserRuleCall_5_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/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.tokens b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.tokens
new file mode 100644
index 000000000..2d0f32706
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.tokens
@@ -0,0 +1,33 @@
+RULE_ID=4
+T__23=23
+T__22=22
+RULE_ANY_OTHER=10
+T__21=21
+T__20=20
+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
+'-> '=21
+'states:'=13
+'out:'=23
+'loops:'=16
+'fsmtest'=11
+'in:'=22
+';'=12
+'='=19
+':'=20
+'randseed:'=17
+','=14
+'.'=18
+'initial:'=15
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtestLexer.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtestLexer.java
new file mode 100644
index 000000000..5269033ae
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtestLexer.java
@@ -0,0 +1,1198 @@
+package org.eclipse.etrice.generator.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 InternalFSMtestLexer extends Lexer {
+ public static final int RULE_ID=4;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ 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 InternalFSMtestLexer() {;}
+ public InternalFSMtestLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalFSMtestLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:11:7: ( 'fsmtest' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:11:9: 'fsmtest'
+ {
+ match("fsmtest");
+
+
+ }
+
+ 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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:12:7: ( ';' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:12:9: ';'
+ {
+ match(';');
+
+ }
+
+ 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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:13:7: ( 'states:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:13:9: 'states:'
+ {
+ match("states:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:14:7: ( ',' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:14: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:15:7: ( 'initial:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:15:9: 'initial:'
+ {
+ match("initial:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:16:7: ( 'loops:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:16:9: 'loops:'
+ {
+ match("loops:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:17:7: ( 'randseed:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:17:9: 'randseed:'
+ {
+ match("randseed:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:18:7: ( '.' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:19:7: ( '=' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:19: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:20:7: ( ':' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:20: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:21:7: ( '-> ' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:21: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:22:7: ( 'in:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:22:9: 'in:'
+ {
+ match("in:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:23:7: ( 'out:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:23:9: 'out:'
+ {
+ match("out:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__23"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1944:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1944:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1944:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1944: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1944: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1946:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1946:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1946: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1946: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1948: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1950:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1950:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1950: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1950: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1952:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1952:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1952: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1952: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1952: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1952:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1952:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1952: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1954:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1954:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1954: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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.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.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1956:16: ( . )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1956:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=20;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:70: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:76: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:82: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:88: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:96: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:105: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:117: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:133: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:149: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1:157: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\1\26\1\uffff\1\26\1\uffff\3\26\3\uffff\1\24\1\26\1\24"+
+ "\2\uffff\3\24\2\uffff\1\26\2\uffff\1\26\1\uffff\3\26\4\uffff\1\26"+
+ "\5\uffff\3\26\1\uffff\10\26\1\uffff\10\26\1\uffff\1\26\1\102\1\uffff"+
+ "\2\26\2\uffff\1\26\1\uffff";
+ static final String DFA12_eofS =
+ "\106\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\163\1\uffff\1\164\1\uffff\1\156\1\157\1\141\3\uffff\1\76"+
+ "\1\165\1\101\2\uffff\2\0\1\52\2\uffff\1\155\2\uffff\1\141\1\uffff"+
+ "\1\72\1\157\1\156\4\uffff\1\164\5\uffff\3\164\1\uffff\1\160\1\144"+
+ "\1\72\2\145\1\151\2\163\1\uffff\2\163\1\141\1\72\1\145\1\164\1\72"+
+ "\1\154\1\uffff\1\145\1\60\1\uffff\1\72\1\144\2\uffff\1\72\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\163\1\uffff\1\164\1\uffff\1\156\1\157\1\141\3\uffff"+
+ "\1\76\1\165\1\172\2\uffff\2\uffff\1\57\2\uffff\1\155\2\uffff\1\141"+
+ "\1\uffff\1\151\1\157\1\156\4\uffff\1\164\5\uffff\3\164\1\uffff\1"+
+ "\160\1\144\1\72\2\145\1\151\2\163\1\uffff\2\163\1\141\1\72\1\145"+
+ "\1\164\1\72\1\154\1\uffff\1\145\1\172\1\uffff\1\72\1\144\2\uffff"+
+ "\1\72\1\uffff";
+ static final String DFA12_acceptS =
+ "\2\uffff\1\2\1\uffff\1\4\3\uffff\1\10\1\11\1\12\3\uffff\1\16\1"+
+ "\17\3\uffff\1\23\1\24\1\uffff\1\16\1\2\1\uffff\1\4\3\uffff\1\10"+
+ "\1\11\1\12\1\13\1\uffff\1\17\1\20\1\21\1\22\1\23\3\uffff\1\14\10"+
+ "\uffff\1\15\10\uffff\1\6\2\uffff\1\3\2\uffff\1\1\1\5\1\uffff\1\7";
+ static final String DFA12_specialS =
+ "\1\1\17\uffff\1\2\1\0\64\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\24\2\23\2\24\1\23\22\24\1\23\1\24\1\20\4\24\1\21\4\24\1"+
+ "\4\1\13\1\10\1\22\12\17\1\12\1\2\1\24\1\11\3\24\32\16\3\24\1"+
+ "\15\1\16\1\24\5\16\1\1\2\16\1\5\2\16\1\6\2\16\1\14\2\16\1\7"+
+ "\1\3\7\16\uff85\24",
+ "\1\25",
+ "",
+ "\1\30",
+ "",
+ "\1\32",
+ "\1\33",
+ "\1\34",
+ "",
+ "",
+ "",
+ "\1\40",
+ "\1\41",
+ "\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "",
+ "\0\43",
+ "\0\43",
+ "\1\44\4\uffff\1\45",
+ "",
+ "",
+ "\1\47",
+ "",
+ "",
+ "\1\50",
+ "",
+ "\1\52\56\uffff\1\51",
+ "\1\53",
+ "\1\54",
+ "",
+ "",
+ "",
+ "",
+ "\1\55",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\56",
+ "\1\57",
+ "\1\60",
+ "",
+ "\1\61",
+ "\1\62",
+ "\1\63",
+ "\1\64",
+ "\1\65",
+ "\1\66",
+ "\1\67",
+ "\1\70",
+ "",
+ "\1\71",
+ "\1\72",
+ "\1\73",
+ "\1\74",
+ "\1\75",
+ "\1\76",
+ "\1\77",
+ "\1\100",
+ "",
+ "\1\101",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "\1\103",
+ "\1\104",
+ "",
+ "",
+ "\1\105",
+ ""
+ };
+
+ 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 | T__20 | T__21 | T__22 | T__23 | 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_17 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_17>='\u0000' && LA12_17<='\uFFFF')) ) {s = 35;}
+
+ else s = 20;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='f') ) {s = 1;}
+
+ else if ( (LA12_0==';') ) {s = 2;}
+
+ else if ( (LA12_0=='s') ) {s = 3;}
+
+ else if ( (LA12_0==',') ) {s = 4;}
+
+ else if ( (LA12_0=='i') ) {s = 5;}
+
+ else if ( (LA12_0=='l') ) {s = 6;}
+
+ else if ( (LA12_0=='r') ) {s = 7;}
+
+ else if ( (LA12_0=='.') ) {s = 8;}
+
+ else if ( (LA12_0=='=') ) {s = 9;}
+
+ else if ( (LA12_0==':') ) {s = 10;}
+
+ else if ( (LA12_0=='-') ) {s = 11;}
+
+ else if ( (LA12_0=='o') ) {s = 12;}
+
+ else if ( (LA12_0=='^') ) {s = 13;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||(LA12_0>='m' && LA12_0<='n')||(LA12_0>='p' && LA12_0<='q')||(LA12_0>='t' && LA12_0<='z')) ) {s = 14;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 15;}
+
+ else if ( (LA12_0=='\"') ) {s = 16;}
+
+ else if ( (LA12_0=='\'') ) {s = 17;}
+
+ else if ( (LA12_0=='/') ) {s = 18;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 19;}
+
+ 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<='\uFFFF')) ) {s = 20;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_16 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_16>='\u0000' && LA12_16<='\uFFFF')) ) {s = 35;}
+
+ else s = 20;
+
+ 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/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtestParser.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtestParser.java
new file mode 100644
index 000000000..46f320ba0
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtestParser.java
@@ -0,0 +1,5273 @@
+package org.eclipse.etrice.generator.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.etrice.generator.services.FSMtestGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFSMtestParser 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", "'fsmtest'", "';'", "'states:'", "','", "'initial:'", "'loops:'", "'randseed:'", "'.'", "'='", "':'", "'-> '", "'in:'", "'out:'"
+ };
+ public static final int RULE_ID=4;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ 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 InternalFSMtestParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalFSMtestParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalFSMtestParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g"; }
+
+
+
+ private FSMtestGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(FSMtestGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleModel"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:60:1: entryRuleModel : ruleModel EOF ;
+ public final void entryRuleModel() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:61:1: ( ruleModel EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:62:1: ruleModel EOF
+ {
+ before(grammarAccess.getModelRule());
+ pushFollow(FOLLOW_ruleModel_in_entryRuleModel61);
+ ruleModel();
+
+ state._fsp--;
+
+ after(grammarAccess.getModelRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModel68);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleModel"
+
+
+ // $ANTLR start "ruleModel"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:69:1: ruleModel : ( ( rule__Model__TestscriptsAssignment )* ) ;
+ public final void ruleModel() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:73:2: ( ( ( rule__Model__TestscriptsAssignment )* ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:74:1: ( ( rule__Model__TestscriptsAssignment )* )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:74:1: ( ( rule__Model__TestscriptsAssignment )* )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:75:1: ( rule__Model__TestscriptsAssignment )*
+ {
+ before(grammarAccess.getModelAccess().getTestscriptsAssignment());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:76:1: ( rule__Model__TestscriptsAssignment )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==11) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:76:2: rule__Model__TestscriptsAssignment
+ {
+ pushFollow(FOLLOW_rule__Model__TestscriptsAssignment_in_ruleModel94);
+ rule__Model__TestscriptsAssignment();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+ after(grammarAccess.getModelAccess().getTestscriptsAssignment());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleModel"
+
+
+ // $ANTLR start "entryRuleTestscript"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:88:1: entryRuleTestscript : ruleTestscript EOF ;
+ public final void entryRuleTestscript() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:89:1: ( ruleTestscript EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:90:1: ruleTestscript EOF
+ {
+ before(grammarAccess.getTestscriptRule());
+ pushFollow(FOLLOW_ruleTestscript_in_entryRuleTestscript122);
+ ruleTestscript();
+
+ state._fsp--;
+
+ after(grammarAccess.getTestscriptRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTestscript129);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleTestscript"
+
+
+ // $ANTLR start "ruleTestscript"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:97:1: ruleTestscript : ( ( rule__Testscript__Group__0 ) ) ;
+ public final void ruleTestscript() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:101:2: ( ( ( rule__Testscript__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:102:1: ( ( rule__Testscript__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:102:1: ( ( rule__Testscript__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:103:1: ( rule__Testscript__Group__0 )
+ {
+ before(grammarAccess.getTestscriptAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:104:1: ( rule__Testscript__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:104:2: rule__Testscript__Group__0
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__0_in_ruleTestscript155);
+ rule__Testscript__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTestscriptAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleTestscript"
+
+
+ // $ANTLR start "entryRuleState"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:116:1: entryRuleState : ruleState EOF ;
+ public final void entryRuleState() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:117:1: ( ruleState EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:118:1: ruleState EOF
+ {
+ before(grammarAccess.getStateRule());
+ pushFollow(FOLLOW_ruleState_in_entryRuleState182);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleState189);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleState"
+
+
+ // $ANTLR start "ruleState"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:125:1: ruleState : ( ( rule__State__NameAssignment ) ) ;
+ public final void ruleState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:129:2: ( ( ( rule__State__NameAssignment ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:130:1: ( ( rule__State__NameAssignment ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:130:1: ( ( rule__State__NameAssignment ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:131:1: ( rule__State__NameAssignment )
+ {
+ before(grammarAccess.getStateAccess().getNameAssignment());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:132:1: ( rule__State__NameAssignment )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:132:2: rule__State__NameAssignment
+ {
+ pushFollow(FOLLOW_rule__State__NameAssignment_in_ruleState215);
+ rule__State__NameAssignment();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateAccess().getNameAssignment());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleState"
+
+
+ // $ANTLR start "entryRuleStateDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:144:1: entryRuleStateDeclaration : ruleStateDeclaration EOF ;
+ public final void entryRuleStateDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:145:1: ( ruleStateDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:146:1: ruleStateDeclaration EOF
+ {
+ before(grammarAccess.getStateDeclarationRule());
+ pushFollow(FOLLOW_ruleStateDeclaration_in_entryRuleStateDeclaration242);
+ ruleStateDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateDeclarationRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStateDeclaration249);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleStateDeclaration"
+
+
+ // $ANTLR start "ruleStateDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:153:1: ruleStateDeclaration : ( ( rule__StateDeclaration__Group__0 ) ) ;
+ public final void ruleStateDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:157:2: ( ( ( rule__StateDeclaration__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:158:1: ( ( rule__StateDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:158:1: ( ( rule__StateDeclaration__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:159:1: ( rule__StateDeclaration__Group__0 )
+ {
+ before(grammarAccess.getStateDeclarationAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:160:1: ( rule__StateDeclaration__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:160:2: rule__StateDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__Group__0_in_ruleStateDeclaration275);
+ rule__StateDeclaration__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateDeclarationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleStateDeclaration"
+
+
+ // $ANTLR start "entryRuleInitialDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:172:1: entryRuleInitialDeclaration : ruleInitialDeclaration EOF ;
+ public final void entryRuleInitialDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:173:1: ( ruleInitialDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:174:1: ruleInitialDeclaration EOF
+ {
+ before(grammarAccess.getInitialDeclarationRule());
+ pushFollow(FOLLOW_ruleInitialDeclaration_in_entryRuleInitialDeclaration302);
+ ruleInitialDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getInitialDeclarationRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInitialDeclaration309);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleInitialDeclaration"
+
+
+ // $ANTLR start "ruleInitialDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:181:1: ruleInitialDeclaration : ( ( rule__InitialDeclaration__Group__0 ) ) ;
+ public final void ruleInitialDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:185:2: ( ( ( rule__InitialDeclaration__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:186:1: ( ( rule__InitialDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:186:1: ( ( rule__InitialDeclaration__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:187:1: ( rule__InitialDeclaration__Group__0 )
+ {
+ before(grammarAccess.getInitialDeclarationAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:188:1: ( rule__InitialDeclaration__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:188:2: rule__InitialDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__InitialDeclaration__Group__0_in_ruleInitialDeclaration335);
+ rule__InitialDeclaration__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInitialDeclarationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleInitialDeclaration"
+
+
+ // $ANTLR start "entryRuleLoopsDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:200:1: entryRuleLoopsDeclaration : ruleLoopsDeclaration EOF ;
+ public final void entryRuleLoopsDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:201:1: ( ruleLoopsDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:202:1: ruleLoopsDeclaration EOF
+ {
+ before(grammarAccess.getLoopsDeclarationRule());
+ pushFollow(FOLLOW_ruleLoopsDeclaration_in_entryRuleLoopsDeclaration362);
+ ruleLoopsDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getLoopsDeclarationRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLoopsDeclaration369);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleLoopsDeclaration"
+
+
+ // $ANTLR start "ruleLoopsDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:209:1: ruleLoopsDeclaration : ( ( rule__LoopsDeclaration__Group__0 ) ) ;
+ public final void ruleLoopsDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:213:2: ( ( ( rule__LoopsDeclaration__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:214:1: ( ( rule__LoopsDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:214:1: ( ( rule__LoopsDeclaration__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:215:1: ( rule__LoopsDeclaration__Group__0 )
+ {
+ before(grammarAccess.getLoopsDeclarationAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:216:1: ( rule__LoopsDeclaration__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:216:2: rule__LoopsDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__LoopsDeclaration__Group__0_in_ruleLoopsDeclaration395);
+ rule__LoopsDeclaration__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getLoopsDeclarationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLoopsDeclaration"
+
+
+ // $ANTLR start "entryRuleSeedDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:228:1: entryRuleSeedDeclaration : ruleSeedDeclaration EOF ;
+ public final void entryRuleSeedDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:229:1: ( ruleSeedDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:230:1: ruleSeedDeclaration EOF
+ {
+ before(grammarAccess.getSeedDeclarationRule());
+ pushFollow(FOLLOW_ruleSeedDeclaration_in_entryRuleSeedDeclaration422);
+ ruleSeedDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getSeedDeclarationRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSeedDeclaration429);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSeedDeclaration"
+
+
+ // $ANTLR start "ruleSeedDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:237:1: ruleSeedDeclaration : ( ( rule__SeedDeclaration__Group__0 ) ) ;
+ public final void ruleSeedDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:241:2: ( ( ( rule__SeedDeclaration__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:242:1: ( ( rule__SeedDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:242:1: ( ( rule__SeedDeclaration__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:243:1: ( rule__SeedDeclaration__Group__0 )
+ {
+ before(grammarAccess.getSeedDeclarationAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:244:1: ( rule__SeedDeclaration__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:244:2: rule__SeedDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__SeedDeclaration__Group__0_in_ruleSeedDeclaration455);
+ rule__SeedDeclaration__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSeedDeclarationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSeedDeclaration"
+
+
+ // $ANTLR start "entryRuleSignalDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:256:1: entryRuleSignalDeclaration : ruleSignalDeclaration EOF ;
+ public final void entryRuleSignalDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:257:1: ( ruleSignalDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:258:1: ruleSignalDeclaration EOF
+ {
+ before(grammarAccess.getSignalDeclarationRule());
+ pushFollow(FOLLOW_ruleSignalDeclaration_in_entryRuleSignalDeclaration482);
+ ruleSignalDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getSignalDeclarationRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSignalDeclaration489);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSignalDeclaration"
+
+
+ // $ANTLR start "ruleSignalDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:265:1: ruleSignalDeclaration : ( ( rule__SignalDeclaration__Group__0 ) ) ;
+ public final void ruleSignalDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:269:2: ( ( ( rule__SignalDeclaration__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:270:1: ( ( rule__SignalDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:270:1: ( ( rule__SignalDeclaration__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:271:1: ( rule__SignalDeclaration__Group__0 )
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:272:1: ( rule__SignalDeclaration__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:272:2: rule__SignalDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group__0_in_ruleSignalDeclaration515);
+ rule__SignalDeclaration__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSignalDeclaration"
+
+
+ // $ANTLR start "entryRuleSourceDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:284:1: entryRuleSourceDeclaration : ruleSourceDeclaration EOF ;
+ public final void entryRuleSourceDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:285:1: ( ruleSourceDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:286:1: ruleSourceDeclaration EOF
+ {
+ before(grammarAccess.getSourceDeclarationRule());
+ pushFollow(FOLLOW_ruleSourceDeclaration_in_entryRuleSourceDeclaration542);
+ ruleSourceDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getSourceDeclarationRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSourceDeclaration549);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSourceDeclaration"
+
+
+ // $ANTLR start "ruleSourceDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:293:1: ruleSourceDeclaration : ( ( rule__SourceDeclaration__Group__0 ) ) ;
+ public final void ruleSourceDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:297:2: ( ( ( rule__SourceDeclaration__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:298:1: ( ( rule__SourceDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:298:1: ( ( rule__SourceDeclaration__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:299:1: ( rule__SourceDeclaration__Group__0 )
+ {
+ before(grammarAccess.getSourceDeclarationAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:300:1: ( rule__SourceDeclaration__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:300:2: rule__SourceDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__SourceDeclaration__Group__0_in_ruleSourceDeclaration575);
+ rule__SourceDeclaration__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSourceDeclarationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSourceDeclaration"
+
+
+ // $ANTLR start "entryRuleDestinationDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:312:1: entryRuleDestinationDeclaration : ruleDestinationDeclaration EOF ;
+ public final void entryRuleDestinationDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:313:1: ( ruleDestinationDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:314:1: ruleDestinationDeclaration EOF
+ {
+ before(grammarAccess.getDestinationDeclarationRule());
+ pushFollow(FOLLOW_ruleDestinationDeclaration_in_entryRuleDestinationDeclaration602);
+ ruleDestinationDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getDestinationDeclarationRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleDestinationDeclaration609);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleDestinationDeclaration"
+
+
+ // $ANTLR start "ruleDestinationDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:321:1: ruleDestinationDeclaration : ( ( rule__DestinationDeclaration__Group__0 ) ) ;
+ public final void ruleDestinationDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:325:2: ( ( ( rule__DestinationDeclaration__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:326:1: ( ( rule__DestinationDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:326:1: ( ( rule__DestinationDeclaration__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:327:1: ( rule__DestinationDeclaration__Group__0 )
+ {
+ before(grammarAccess.getDestinationDeclarationAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:328:1: ( rule__DestinationDeclaration__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:328:2: rule__DestinationDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__DestinationDeclaration__Group__0_in_ruleDestinationDeclaration635);
+ rule__DestinationDeclaration__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getDestinationDeclarationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleDestinationDeclaration"
+
+
+ // $ANTLR start "entryRuleTransitionDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:340:1: entryRuleTransitionDeclaration : ruleTransitionDeclaration EOF ;
+ public final void entryRuleTransitionDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:341:1: ( ruleTransitionDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:342:1: ruleTransitionDeclaration EOF
+ {
+ before(grammarAccess.getTransitionDeclarationRule());
+ pushFollow(FOLLOW_ruleTransitionDeclaration_in_entryRuleTransitionDeclaration662);
+ ruleTransitionDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTransitionDeclarationRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionDeclaration669);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleTransitionDeclaration"
+
+
+ // $ANTLR start "ruleTransitionDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:349:1: ruleTransitionDeclaration : ( ( rule__TransitionDeclaration__Group__0 ) ) ;
+ public final void ruleTransitionDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:353:2: ( ( ( rule__TransitionDeclaration__Group__0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:354:1: ( ( rule__TransitionDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:354:1: ( ( rule__TransitionDeclaration__Group__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:355:1: ( rule__TransitionDeclaration__Group__0 )
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getGroup());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:356:1: ( rule__TransitionDeclaration__Group__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:356:2: rule__TransitionDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__0_in_ruleTransitionDeclaration695);
+ rule__TransitionDeclaration__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionDeclarationAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleTransitionDeclaration"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Alternatives_2"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:368:1: rule__SignalDeclaration__Alternatives_2 : ( ( ( rule__SignalDeclaration__Group_2_0__0 ) ) | ( ( rule__SignalDeclaration__Group_2_1__0 ) ) );
+ public final void rule__SignalDeclaration__Alternatives_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:372:1: ( ( ( rule__SignalDeclaration__Group_2_0__0 ) ) | ( ( rule__SignalDeclaration__Group_2_1__0 ) ) )
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==19) ) {
+ int LA2_1 = input.LA(2);
+
+ if ( (LA2_1==RULE_STRING) ) {
+ alt2=2;
+ }
+ else if ( (LA2_1==RULE_INT) ) {
+ alt2=1;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:373:1: ( ( rule__SignalDeclaration__Group_2_0__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:373:1: ( ( rule__SignalDeclaration__Group_2_0__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:374:1: ( rule__SignalDeclaration__Group_2_0__0 )
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getGroup_2_0());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:375:1: ( rule__SignalDeclaration__Group_2_0__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:375:2: rule__SignalDeclaration__Group_2_0__0
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_2_0__0_in_rule__SignalDeclaration__Alternatives_2731);
+ rule__SignalDeclaration__Group_2_0__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getGroup_2_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:379:6: ( ( rule__SignalDeclaration__Group_2_1__0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:379:6: ( ( rule__SignalDeclaration__Group_2_1__0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:380:1: ( rule__SignalDeclaration__Group_2_1__0 )
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getGroup_2_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:381:1: ( rule__SignalDeclaration__Group_2_1__0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:381:2: rule__SignalDeclaration__Group_2_1__0
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_2_1__0_in_rule__SignalDeclaration__Alternatives_2749);
+ rule__SignalDeclaration__Group_2_1__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getGroup_2_1());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Alternatives_2"
+
+
+ // $ANTLR start "rule__Testscript__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:392:1: rule__Testscript__Group__0 : rule__Testscript__Group__0__Impl rule__Testscript__Group__1 ;
+ public final void rule__Testscript__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:396:1: ( rule__Testscript__Group__0__Impl rule__Testscript__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:397:2: rule__Testscript__Group__0__Impl rule__Testscript__Group__1
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__0__Impl_in_rule__Testscript__Group__0780);
+ rule__Testscript__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Testscript__Group__1_in_rule__Testscript__Group__0783);
+ rule__Testscript__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__0"
+
+
+ // $ANTLR start "rule__Testscript__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:404:1: rule__Testscript__Group__0__Impl : ( 'fsmtest' ) ;
+ public final void rule__Testscript__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:408:1: ( ( 'fsmtest' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:409:1: ( 'fsmtest' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:409:1: ( 'fsmtest' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:410:1: 'fsmtest'
+ {
+ before(grammarAccess.getTestscriptAccess().getFsmtestKeyword_0());
+ match(input,11,FOLLOW_11_in_rule__Testscript__Group__0__Impl811);
+ after(grammarAccess.getTestscriptAccess().getFsmtestKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Testscript__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:423:1: rule__Testscript__Group__1 : rule__Testscript__Group__1__Impl rule__Testscript__Group__2 ;
+ public final void rule__Testscript__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:427:1: ( rule__Testscript__Group__1__Impl rule__Testscript__Group__2 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:428:2: rule__Testscript__Group__1__Impl rule__Testscript__Group__2
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__1__Impl_in_rule__Testscript__Group__1842);
+ rule__Testscript__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Testscript__Group__2_in_rule__Testscript__Group__1845);
+ rule__Testscript__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__1"
+
+
+ // $ANTLR start "rule__Testscript__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:435:1: rule__Testscript__Group__1__Impl : ( ( rule__Testscript__NameAssignment_1 ) ) ;
+ public final void rule__Testscript__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:439:1: ( ( ( rule__Testscript__NameAssignment_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:440:1: ( ( rule__Testscript__NameAssignment_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:440:1: ( ( rule__Testscript__NameAssignment_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:441:1: ( rule__Testscript__NameAssignment_1 )
+ {
+ before(grammarAccess.getTestscriptAccess().getNameAssignment_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:442:1: ( rule__Testscript__NameAssignment_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:442:2: rule__Testscript__NameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__Testscript__NameAssignment_1_in_rule__Testscript__Group__1__Impl872);
+ rule__Testscript__NameAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTestscriptAccess().getNameAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Testscript__Group__2"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:452:1: rule__Testscript__Group__2 : rule__Testscript__Group__2__Impl rule__Testscript__Group__3 ;
+ public final void rule__Testscript__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:456:1: ( rule__Testscript__Group__2__Impl rule__Testscript__Group__3 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:457:2: rule__Testscript__Group__2__Impl rule__Testscript__Group__3
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__2__Impl_in_rule__Testscript__Group__2902);
+ rule__Testscript__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Testscript__Group__3_in_rule__Testscript__Group__2905);
+ rule__Testscript__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__2"
+
+
+ // $ANTLR start "rule__Testscript__Group__2__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:464:1: rule__Testscript__Group__2__Impl : ( ( rule__Testscript__StateDeclarationAssignment_2 ) ) ;
+ public final void rule__Testscript__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:468:1: ( ( ( rule__Testscript__StateDeclarationAssignment_2 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:469:1: ( ( rule__Testscript__StateDeclarationAssignment_2 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:469:1: ( ( rule__Testscript__StateDeclarationAssignment_2 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:470:1: ( rule__Testscript__StateDeclarationAssignment_2 )
+ {
+ before(grammarAccess.getTestscriptAccess().getStateDeclarationAssignment_2());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:471:1: ( rule__Testscript__StateDeclarationAssignment_2 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:471:2: rule__Testscript__StateDeclarationAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Testscript__StateDeclarationAssignment_2_in_rule__Testscript__Group__2__Impl932);
+ rule__Testscript__StateDeclarationAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTestscriptAccess().getStateDeclarationAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Testscript__Group__3"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:481:1: rule__Testscript__Group__3 : rule__Testscript__Group__3__Impl rule__Testscript__Group__4 ;
+ public final void rule__Testscript__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:485:1: ( rule__Testscript__Group__3__Impl rule__Testscript__Group__4 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:486:2: rule__Testscript__Group__3__Impl rule__Testscript__Group__4
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__3__Impl_in_rule__Testscript__Group__3962);
+ rule__Testscript__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Testscript__Group__4_in_rule__Testscript__Group__3965);
+ rule__Testscript__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__3"
+
+
+ // $ANTLR start "rule__Testscript__Group__3__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:493:1: rule__Testscript__Group__3__Impl : ( ( rule__Testscript__InitialDeclarationAssignment_3 ) ) ;
+ public final void rule__Testscript__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:497:1: ( ( ( rule__Testscript__InitialDeclarationAssignment_3 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:498:1: ( ( rule__Testscript__InitialDeclarationAssignment_3 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:498:1: ( ( rule__Testscript__InitialDeclarationAssignment_3 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:499:1: ( rule__Testscript__InitialDeclarationAssignment_3 )
+ {
+ before(grammarAccess.getTestscriptAccess().getInitialDeclarationAssignment_3());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:500:1: ( rule__Testscript__InitialDeclarationAssignment_3 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:500:2: rule__Testscript__InitialDeclarationAssignment_3
+ {
+ pushFollow(FOLLOW_rule__Testscript__InitialDeclarationAssignment_3_in_rule__Testscript__Group__3__Impl992);
+ rule__Testscript__InitialDeclarationAssignment_3();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTestscriptAccess().getInitialDeclarationAssignment_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Testscript__Group__4"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:510:1: rule__Testscript__Group__4 : rule__Testscript__Group__4__Impl rule__Testscript__Group__5 ;
+ public final void rule__Testscript__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:514:1: ( rule__Testscript__Group__4__Impl rule__Testscript__Group__5 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:515:2: rule__Testscript__Group__4__Impl rule__Testscript__Group__5
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__4__Impl_in_rule__Testscript__Group__41022);
+ rule__Testscript__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Testscript__Group__5_in_rule__Testscript__Group__41025);
+ rule__Testscript__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__4"
+
+
+ // $ANTLR start "rule__Testscript__Group__4__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:522:1: rule__Testscript__Group__4__Impl : ( ( rule__Testscript__LoopsDeclarationAssignment_4 ) ) ;
+ public final void rule__Testscript__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:526:1: ( ( ( rule__Testscript__LoopsDeclarationAssignment_4 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:527:1: ( ( rule__Testscript__LoopsDeclarationAssignment_4 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:527:1: ( ( rule__Testscript__LoopsDeclarationAssignment_4 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:528:1: ( rule__Testscript__LoopsDeclarationAssignment_4 )
+ {
+ before(grammarAccess.getTestscriptAccess().getLoopsDeclarationAssignment_4());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:529:1: ( rule__Testscript__LoopsDeclarationAssignment_4 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:529:2: rule__Testscript__LoopsDeclarationAssignment_4
+ {
+ pushFollow(FOLLOW_rule__Testscript__LoopsDeclarationAssignment_4_in_rule__Testscript__Group__4__Impl1052);
+ rule__Testscript__LoopsDeclarationAssignment_4();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTestscriptAccess().getLoopsDeclarationAssignment_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Testscript__Group__5"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:539:1: rule__Testscript__Group__5 : rule__Testscript__Group__5__Impl rule__Testscript__Group__6 ;
+ public final void rule__Testscript__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:543:1: ( rule__Testscript__Group__5__Impl rule__Testscript__Group__6 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:544:2: rule__Testscript__Group__5__Impl rule__Testscript__Group__6
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__5__Impl_in_rule__Testscript__Group__51082);
+ rule__Testscript__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Testscript__Group__6_in_rule__Testscript__Group__51085);
+ rule__Testscript__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__5"
+
+
+ // $ANTLR start "rule__Testscript__Group__5__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:551:1: rule__Testscript__Group__5__Impl : ( ( rule__Testscript__SeedDeclarationAssignment_5 )? ) ;
+ public final void rule__Testscript__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:555:1: ( ( ( rule__Testscript__SeedDeclarationAssignment_5 )? ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:556:1: ( ( rule__Testscript__SeedDeclarationAssignment_5 )? )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:556:1: ( ( rule__Testscript__SeedDeclarationAssignment_5 )? )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:557:1: ( rule__Testscript__SeedDeclarationAssignment_5 )?
+ {
+ before(grammarAccess.getTestscriptAccess().getSeedDeclarationAssignment_5());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:558:1: ( rule__Testscript__SeedDeclarationAssignment_5 )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==17) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:558:2: rule__Testscript__SeedDeclarationAssignment_5
+ {
+ pushFollow(FOLLOW_rule__Testscript__SeedDeclarationAssignment_5_in_rule__Testscript__Group__5__Impl1112);
+ rule__Testscript__SeedDeclarationAssignment_5();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getTestscriptAccess().getSeedDeclarationAssignment_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Testscript__Group__6"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:568:1: rule__Testscript__Group__6 : rule__Testscript__Group__6__Impl rule__Testscript__Group__7 ;
+ public final void rule__Testscript__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:572:1: ( rule__Testscript__Group__6__Impl rule__Testscript__Group__7 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:573:2: rule__Testscript__Group__6__Impl rule__Testscript__Group__7
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__6__Impl_in_rule__Testscript__Group__61143);
+ rule__Testscript__Group__6__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Testscript__Group__7_in_rule__Testscript__Group__61146);
+ rule__Testscript__Group__7();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__6"
+
+
+ // $ANTLR start "rule__Testscript__Group__6__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:580:1: rule__Testscript__Group__6__Impl : ( ( rule__Testscript__TransitionDeclarationsAssignment_6 )* ) ;
+ public final void rule__Testscript__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:584:1: ( ( ( rule__Testscript__TransitionDeclarationsAssignment_6 )* ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:585:1: ( ( rule__Testscript__TransitionDeclarationsAssignment_6 )* )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:585:1: ( ( rule__Testscript__TransitionDeclarationsAssignment_6 )* )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:586:1: ( rule__Testscript__TransitionDeclarationsAssignment_6 )*
+ {
+ before(grammarAccess.getTestscriptAccess().getTransitionDeclarationsAssignment_6());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:587:1: ( rule__Testscript__TransitionDeclarationsAssignment_6 )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==RULE_ID) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:587:2: rule__Testscript__TransitionDeclarationsAssignment_6
+ {
+ pushFollow(FOLLOW_rule__Testscript__TransitionDeclarationsAssignment_6_in_rule__Testscript__Group__6__Impl1173);
+ rule__Testscript__TransitionDeclarationsAssignment_6();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ after(grammarAccess.getTestscriptAccess().getTransitionDeclarationsAssignment_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__6__Impl"
+
+
+ // $ANTLR start "rule__Testscript__Group__7"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:597:1: rule__Testscript__Group__7 : rule__Testscript__Group__7__Impl ;
+ public final void rule__Testscript__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:601:1: ( rule__Testscript__Group__7__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:602:2: rule__Testscript__Group__7__Impl
+ {
+ pushFollow(FOLLOW_rule__Testscript__Group__7__Impl_in_rule__Testscript__Group__71204);
+ rule__Testscript__Group__7__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__7"
+
+
+ // $ANTLR start "rule__Testscript__Group__7__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:608:1: rule__Testscript__Group__7__Impl : ( ';' ) ;
+ public final void rule__Testscript__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:612:1: ( ( ';' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:613:1: ( ';' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:613:1: ( ';' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:614:1: ';'
+ {
+ before(grammarAccess.getTestscriptAccess().getSemicolonKeyword_7());
+ match(input,12,FOLLOW_12_in_rule__Testscript__Group__7__Impl1232);
+ after(grammarAccess.getTestscriptAccess().getSemicolonKeyword_7());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__Group__7__Impl"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:643:1: rule__StateDeclaration__Group__0 : rule__StateDeclaration__Group__0__Impl rule__StateDeclaration__Group__1 ;
+ public final void rule__StateDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:647:1: ( rule__StateDeclaration__Group__0__Impl rule__StateDeclaration__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:648:2: rule__StateDeclaration__Group__0__Impl rule__StateDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__Group__0__Impl_in_rule__StateDeclaration__Group__01279);
+ rule__StateDeclaration__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__StateDeclaration__Group__1_in_rule__StateDeclaration__Group__01282);
+ rule__StateDeclaration__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:655:1: rule__StateDeclaration__Group__0__Impl : ( 'states:' ) ;
+ public final void rule__StateDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:659:1: ( ( 'states:' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:660:1: ( 'states:' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:660:1: ( 'states:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:661:1: 'states:'
+ {
+ before(grammarAccess.getStateDeclarationAccess().getStatesKeyword_0());
+ match(input,13,FOLLOW_13_in_rule__StateDeclaration__Group__0__Impl1310);
+ after(grammarAccess.getStateDeclarationAccess().getStatesKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:674:1: rule__StateDeclaration__Group__1 : rule__StateDeclaration__Group__1__Impl rule__StateDeclaration__Group__2 ;
+ public final void rule__StateDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:678:1: ( rule__StateDeclaration__Group__1__Impl rule__StateDeclaration__Group__2 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:679:2: rule__StateDeclaration__Group__1__Impl rule__StateDeclaration__Group__2
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__Group__1__Impl_in_rule__StateDeclaration__Group__11341);
+ rule__StateDeclaration__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__StateDeclaration__Group__2_in_rule__StateDeclaration__Group__11344);
+ rule__StateDeclaration__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:686:1: rule__StateDeclaration__Group__1__Impl : ( ( rule__StateDeclaration__StatesAssignment_1 ) ) ;
+ public final void rule__StateDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:690:1: ( ( ( rule__StateDeclaration__StatesAssignment_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:691:1: ( ( rule__StateDeclaration__StatesAssignment_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:691:1: ( ( rule__StateDeclaration__StatesAssignment_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:692:1: ( rule__StateDeclaration__StatesAssignment_1 )
+ {
+ before(grammarAccess.getStateDeclarationAccess().getStatesAssignment_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:693:1: ( rule__StateDeclaration__StatesAssignment_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:693:2: rule__StateDeclaration__StatesAssignment_1
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__StatesAssignment_1_in_rule__StateDeclaration__Group__1__Impl1371);
+ rule__StateDeclaration__StatesAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateDeclarationAccess().getStatesAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group__2"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:703:1: rule__StateDeclaration__Group__2 : rule__StateDeclaration__Group__2__Impl ;
+ public final void rule__StateDeclaration__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:707:1: ( rule__StateDeclaration__Group__2__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:708:2: rule__StateDeclaration__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__Group__2__Impl_in_rule__StateDeclaration__Group__21401);
+ rule__StateDeclaration__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group__2"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group__2__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:714:1: rule__StateDeclaration__Group__2__Impl : ( ( rule__StateDeclaration__Group_2__0 )* ) ;
+ public final void rule__StateDeclaration__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:718:1: ( ( ( rule__StateDeclaration__Group_2__0 )* ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:719:1: ( ( rule__StateDeclaration__Group_2__0 )* )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:719:1: ( ( rule__StateDeclaration__Group_2__0 )* )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:720:1: ( rule__StateDeclaration__Group_2__0 )*
+ {
+ before(grammarAccess.getStateDeclarationAccess().getGroup_2());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:721:1: ( rule__StateDeclaration__Group_2__0 )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==14) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:721:2: rule__StateDeclaration__Group_2__0
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__Group_2__0_in_rule__StateDeclaration__Group__2__Impl1428);
+ rule__StateDeclaration__Group_2__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ after(grammarAccess.getStateDeclarationAccess().getGroup_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group__2__Impl"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group_2__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:737:1: rule__StateDeclaration__Group_2__0 : rule__StateDeclaration__Group_2__0__Impl rule__StateDeclaration__Group_2__1 ;
+ public final void rule__StateDeclaration__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:741:1: ( rule__StateDeclaration__Group_2__0__Impl rule__StateDeclaration__Group_2__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:742:2: rule__StateDeclaration__Group_2__0__Impl rule__StateDeclaration__Group_2__1
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__Group_2__0__Impl_in_rule__StateDeclaration__Group_2__01465);
+ rule__StateDeclaration__Group_2__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__StateDeclaration__Group_2__1_in_rule__StateDeclaration__Group_2__01468);
+ rule__StateDeclaration__Group_2__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group_2__0"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group_2__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:749:1: rule__StateDeclaration__Group_2__0__Impl : ( ',' ) ;
+ public final void rule__StateDeclaration__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:753:1: ( ( ',' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:754:1: ( ',' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:754:1: ( ',' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:755:1: ','
+ {
+ before(grammarAccess.getStateDeclarationAccess().getCommaKeyword_2_0());
+ match(input,14,FOLLOW_14_in_rule__StateDeclaration__Group_2__0__Impl1496);
+ after(grammarAccess.getStateDeclarationAccess().getCommaKeyword_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group_2__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:768:1: rule__StateDeclaration__Group_2__1 : rule__StateDeclaration__Group_2__1__Impl ;
+ public final void rule__StateDeclaration__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:772:1: ( rule__StateDeclaration__Group_2__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:773:2: rule__StateDeclaration__Group_2__1__Impl
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__Group_2__1__Impl_in_rule__StateDeclaration__Group_2__11527);
+ rule__StateDeclaration__Group_2__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group_2__1"
+
+
+ // $ANTLR start "rule__StateDeclaration__Group_2__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:779:1: rule__StateDeclaration__Group_2__1__Impl : ( ( rule__StateDeclaration__StatesAssignment_2_1 ) ) ;
+ public final void rule__StateDeclaration__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:783:1: ( ( ( rule__StateDeclaration__StatesAssignment_2_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:784:1: ( ( rule__StateDeclaration__StatesAssignment_2_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:784:1: ( ( rule__StateDeclaration__StatesAssignment_2_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:785:1: ( rule__StateDeclaration__StatesAssignment_2_1 )
+ {
+ before(grammarAccess.getStateDeclarationAccess().getStatesAssignment_2_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:786:1: ( rule__StateDeclaration__StatesAssignment_2_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:786:2: rule__StateDeclaration__StatesAssignment_2_1
+ {
+ pushFollow(FOLLOW_rule__StateDeclaration__StatesAssignment_2_1_in_rule__StateDeclaration__Group_2__1__Impl1554);
+ rule__StateDeclaration__StatesAssignment_2_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateDeclarationAccess().getStatesAssignment_2_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__InitialDeclaration__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:800:1: rule__InitialDeclaration__Group__0 : rule__InitialDeclaration__Group__0__Impl rule__InitialDeclaration__Group__1 ;
+ public final void rule__InitialDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:804:1: ( rule__InitialDeclaration__Group__0__Impl rule__InitialDeclaration__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:805:2: rule__InitialDeclaration__Group__0__Impl rule__InitialDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__InitialDeclaration__Group__0__Impl_in_rule__InitialDeclaration__Group__01588);
+ rule__InitialDeclaration__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__InitialDeclaration__Group__1_in_rule__InitialDeclaration__Group__01591);
+ rule__InitialDeclaration__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InitialDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__InitialDeclaration__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:812:1: rule__InitialDeclaration__Group__0__Impl : ( 'initial:' ) ;
+ public final void rule__InitialDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:816:1: ( ( 'initial:' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:817:1: ( 'initial:' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:817:1: ( 'initial:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:818:1: 'initial:'
+ {
+ before(grammarAccess.getInitialDeclarationAccess().getInitialKeyword_0());
+ match(input,15,FOLLOW_15_in_rule__InitialDeclaration__Group__0__Impl1619);
+ after(grammarAccess.getInitialDeclarationAccess().getInitialKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InitialDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__InitialDeclaration__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:831:1: rule__InitialDeclaration__Group__1 : rule__InitialDeclaration__Group__1__Impl ;
+ public final void rule__InitialDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:835:1: ( rule__InitialDeclaration__Group__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:836:2: rule__InitialDeclaration__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__InitialDeclaration__Group__1__Impl_in_rule__InitialDeclaration__Group__11650);
+ rule__InitialDeclaration__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InitialDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__InitialDeclaration__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:842:1: rule__InitialDeclaration__Group__1__Impl : ( ( rule__InitialDeclaration__InitialAssignment_1 ) ) ;
+ public final void rule__InitialDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:846:1: ( ( ( rule__InitialDeclaration__InitialAssignment_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:847:1: ( ( rule__InitialDeclaration__InitialAssignment_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:847:1: ( ( rule__InitialDeclaration__InitialAssignment_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:848:1: ( rule__InitialDeclaration__InitialAssignment_1 )
+ {
+ before(grammarAccess.getInitialDeclarationAccess().getInitialAssignment_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:849:1: ( rule__InitialDeclaration__InitialAssignment_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:849:2: rule__InitialDeclaration__InitialAssignment_1
+ {
+ pushFollow(FOLLOW_rule__InitialDeclaration__InitialAssignment_1_in_rule__InitialDeclaration__Group__1__Impl1677);
+ rule__InitialDeclaration__InitialAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getInitialDeclarationAccess().getInitialAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InitialDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__LoopsDeclaration__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:863:1: rule__LoopsDeclaration__Group__0 : rule__LoopsDeclaration__Group__0__Impl rule__LoopsDeclaration__Group__1 ;
+ public final void rule__LoopsDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:867:1: ( rule__LoopsDeclaration__Group__0__Impl rule__LoopsDeclaration__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:868:2: rule__LoopsDeclaration__Group__0__Impl rule__LoopsDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__LoopsDeclaration__Group__0__Impl_in_rule__LoopsDeclaration__Group__01711);
+ rule__LoopsDeclaration__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__LoopsDeclaration__Group__1_in_rule__LoopsDeclaration__Group__01714);
+ rule__LoopsDeclaration__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoopsDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__LoopsDeclaration__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:875:1: rule__LoopsDeclaration__Group__0__Impl : ( 'loops:' ) ;
+ public final void rule__LoopsDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:879:1: ( ( 'loops:' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:880:1: ( 'loops:' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:880:1: ( 'loops:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:881:1: 'loops:'
+ {
+ before(grammarAccess.getLoopsDeclarationAccess().getLoopsKeyword_0());
+ match(input,16,FOLLOW_16_in_rule__LoopsDeclaration__Group__0__Impl1742);
+ after(grammarAccess.getLoopsDeclarationAccess().getLoopsKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoopsDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__LoopsDeclaration__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:894:1: rule__LoopsDeclaration__Group__1 : rule__LoopsDeclaration__Group__1__Impl ;
+ public final void rule__LoopsDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:898:1: ( rule__LoopsDeclaration__Group__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:899:2: rule__LoopsDeclaration__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__LoopsDeclaration__Group__1__Impl_in_rule__LoopsDeclaration__Group__11773);
+ rule__LoopsDeclaration__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoopsDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__LoopsDeclaration__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:905:1: rule__LoopsDeclaration__Group__1__Impl : ( ( rule__LoopsDeclaration__ValAssignment_1 ) ) ;
+ public final void rule__LoopsDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:909:1: ( ( ( rule__LoopsDeclaration__ValAssignment_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:910:1: ( ( rule__LoopsDeclaration__ValAssignment_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:910:1: ( ( rule__LoopsDeclaration__ValAssignment_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:911:1: ( rule__LoopsDeclaration__ValAssignment_1 )
+ {
+ before(grammarAccess.getLoopsDeclarationAccess().getValAssignment_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:912:1: ( rule__LoopsDeclaration__ValAssignment_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:912:2: rule__LoopsDeclaration__ValAssignment_1
+ {
+ pushFollow(FOLLOW_rule__LoopsDeclaration__ValAssignment_1_in_rule__LoopsDeclaration__Group__1__Impl1800);
+ rule__LoopsDeclaration__ValAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getLoopsDeclarationAccess().getValAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoopsDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SeedDeclaration__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:926:1: rule__SeedDeclaration__Group__0 : rule__SeedDeclaration__Group__0__Impl rule__SeedDeclaration__Group__1 ;
+ public final void rule__SeedDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:930:1: ( rule__SeedDeclaration__Group__0__Impl rule__SeedDeclaration__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:931:2: rule__SeedDeclaration__Group__0__Impl rule__SeedDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__SeedDeclaration__Group__0__Impl_in_rule__SeedDeclaration__Group__01834);
+ rule__SeedDeclaration__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SeedDeclaration__Group__1_in_rule__SeedDeclaration__Group__01837);
+ rule__SeedDeclaration__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SeedDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__SeedDeclaration__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:938:1: rule__SeedDeclaration__Group__0__Impl : ( 'randseed:' ) ;
+ public final void rule__SeedDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:942:1: ( ( 'randseed:' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:943:1: ( 'randseed:' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:943:1: ( 'randseed:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:944:1: 'randseed:'
+ {
+ before(grammarAccess.getSeedDeclarationAccess().getRandseedKeyword_0());
+ match(input,17,FOLLOW_17_in_rule__SeedDeclaration__Group__0__Impl1865);
+ after(grammarAccess.getSeedDeclarationAccess().getRandseedKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SeedDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SeedDeclaration__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:957:1: rule__SeedDeclaration__Group__1 : rule__SeedDeclaration__Group__1__Impl ;
+ public final void rule__SeedDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:961:1: ( rule__SeedDeclaration__Group__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:962:2: rule__SeedDeclaration__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__SeedDeclaration__Group__1__Impl_in_rule__SeedDeclaration__Group__11896);
+ rule__SeedDeclaration__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SeedDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__SeedDeclaration__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:968:1: rule__SeedDeclaration__Group__1__Impl : ( ( rule__SeedDeclaration__ValAssignment_1 ) ) ;
+ public final void rule__SeedDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:972:1: ( ( ( rule__SeedDeclaration__ValAssignment_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:973:1: ( ( rule__SeedDeclaration__ValAssignment_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:973:1: ( ( rule__SeedDeclaration__ValAssignment_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:974:1: ( rule__SeedDeclaration__ValAssignment_1 )
+ {
+ before(grammarAccess.getSeedDeclarationAccess().getValAssignment_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:975:1: ( rule__SeedDeclaration__ValAssignment_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:975:2: rule__SeedDeclaration__ValAssignment_1
+ {
+ pushFollow(FOLLOW_rule__SeedDeclaration__ValAssignment_1_in_rule__SeedDeclaration__Group__1__Impl1923);
+ rule__SeedDeclaration__ValAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSeedDeclarationAccess().getValAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SeedDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:989:1: rule__SignalDeclaration__Group__0 : rule__SignalDeclaration__Group__0__Impl rule__SignalDeclaration__Group__1 ;
+ public final void rule__SignalDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:993:1: ( rule__SignalDeclaration__Group__0__Impl rule__SignalDeclaration__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:994:2: rule__SignalDeclaration__Group__0__Impl rule__SignalDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group__0__Impl_in_rule__SignalDeclaration__Group__01957);
+ rule__SignalDeclaration__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group__1_in_rule__SignalDeclaration__Group__01960);
+ rule__SignalDeclaration__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1001:1: rule__SignalDeclaration__Group__0__Impl : ( ( rule__SignalDeclaration__Group_0__0 )? ) ;
+ public final void rule__SignalDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1005:1: ( ( ( rule__SignalDeclaration__Group_0__0 )? ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1006:1: ( ( rule__SignalDeclaration__Group_0__0 )? )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1006:1: ( ( rule__SignalDeclaration__Group_0__0 )? )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1007:1: ( rule__SignalDeclaration__Group_0__0 )?
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getGroup_0());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1008:1: ( rule__SignalDeclaration__Group_0__0 )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==RULE_ID) ) {
+ int LA6_1 = input.LA(2);
+
+ if ( (LA6_1==18) ) {
+ alt6=1;
+ }
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1008:2: rule__SignalDeclaration__Group_0__0
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_0__0_in_rule__SignalDeclaration__Group__0__Impl1987);
+ rule__SignalDeclaration__Group_0__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getGroup_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1018:1: rule__SignalDeclaration__Group__1 : rule__SignalDeclaration__Group__1__Impl rule__SignalDeclaration__Group__2 ;
+ public final void rule__SignalDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1022:1: ( rule__SignalDeclaration__Group__1__Impl rule__SignalDeclaration__Group__2 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1023:2: rule__SignalDeclaration__Group__1__Impl rule__SignalDeclaration__Group__2
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group__1__Impl_in_rule__SignalDeclaration__Group__12018);
+ rule__SignalDeclaration__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group__2_in_rule__SignalDeclaration__Group__12021);
+ rule__SignalDeclaration__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1030:1: rule__SignalDeclaration__Group__1__Impl : ( ( rule__SignalDeclaration__SignameAssignment_1 ) ) ;
+ public final void rule__SignalDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1034:1: ( ( ( rule__SignalDeclaration__SignameAssignment_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1035:1: ( ( rule__SignalDeclaration__SignameAssignment_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1035:1: ( ( rule__SignalDeclaration__SignameAssignment_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1036:1: ( rule__SignalDeclaration__SignameAssignment_1 )
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getSignameAssignment_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1037:1: ( rule__SignalDeclaration__SignameAssignment_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1037:2: rule__SignalDeclaration__SignameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__SignameAssignment_1_in_rule__SignalDeclaration__Group__1__Impl2048);
+ rule__SignalDeclaration__SignameAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getSignameAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group__2"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1047:1: rule__SignalDeclaration__Group__2 : rule__SignalDeclaration__Group__2__Impl ;
+ public final void rule__SignalDeclaration__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1051:1: ( rule__SignalDeclaration__Group__2__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1052:2: rule__SignalDeclaration__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group__2__Impl_in_rule__SignalDeclaration__Group__22078);
+ rule__SignalDeclaration__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group__2"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group__2__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1058:1: rule__SignalDeclaration__Group__2__Impl : ( ( rule__SignalDeclaration__Alternatives_2 )? ) ;
+ public final void rule__SignalDeclaration__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1062:1: ( ( ( rule__SignalDeclaration__Alternatives_2 )? ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1063:1: ( ( rule__SignalDeclaration__Alternatives_2 )? )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1063:1: ( ( rule__SignalDeclaration__Alternatives_2 )? )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1064:1: ( rule__SignalDeclaration__Alternatives_2 )?
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getAlternatives_2());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1065:1: ( rule__SignalDeclaration__Alternatives_2 )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==19) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1065:2: rule__SignalDeclaration__Alternatives_2
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Alternatives_2_in_rule__SignalDeclaration__Group__2__Impl2105);
+ rule__SignalDeclaration__Alternatives_2();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getAlternatives_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group__2__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_0__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1081:1: rule__SignalDeclaration__Group_0__0 : rule__SignalDeclaration__Group_0__0__Impl rule__SignalDeclaration__Group_0__1 ;
+ public final void rule__SignalDeclaration__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1085:1: ( rule__SignalDeclaration__Group_0__0__Impl rule__SignalDeclaration__Group_0__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1086:2: rule__SignalDeclaration__Group_0__0__Impl rule__SignalDeclaration__Group_0__1
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_0__0__Impl_in_rule__SignalDeclaration__Group_0__02142);
+ rule__SignalDeclaration__Group_0__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_0__1_in_rule__SignalDeclaration__Group_0__02145);
+ rule__SignalDeclaration__Group_0__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_0__0"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_0__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1093:1: rule__SignalDeclaration__Group_0__0__Impl : ( ( rule__SignalDeclaration__PortAssignment_0_0 ) ) ;
+ public final void rule__SignalDeclaration__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1097:1: ( ( ( rule__SignalDeclaration__PortAssignment_0_0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1098:1: ( ( rule__SignalDeclaration__PortAssignment_0_0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1098:1: ( ( rule__SignalDeclaration__PortAssignment_0_0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1099:1: ( rule__SignalDeclaration__PortAssignment_0_0 )
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getPortAssignment_0_0());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1100:1: ( rule__SignalDeclaration__PortAssignment_0_0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1100:2: rule__SignalDeclaration__PortAssignment_0_0
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__PortAssignment_0_0_in_rule__SignalDeclaration__Group_0__0__Impl2172);
+ rule__SignalDeclaration__PortAssignment_0_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getPortAssignment_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_0__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1110:1: rule__SignalDeclaration__Group_0__1 : rule__SignalDeclaration__Group_0__1__Impl ;
+ public final void rule__SignalDeclaration__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1114:1: ( rule__SignalDeclaration__Group_0__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1115:2: rule__SignalDeclaration__Group_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_0__1__Impl_in_rule__SignalDeclaration__Group_0__12202);
+ rule__SignalDeclaration__Group_0__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_0__1"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_0__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1121:1: rule__SignalDeclaration__Group_0__1__Impl : ( '.' ) ;
+ public final void rule__SignalDeclaration__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1125:1: ( ( '.' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1126:1: ( '.' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1126:1: ( '.' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1127:1: '.'
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getFullStopKeyword_0_1());
+ match(input,18,FOLLOW_18_in_rule__SignalDeclaration__Group_0__1__Impl2230);
+ after(grammarAccess.getSignalDeclarationAccess().getFullStopKeyword_0_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_2_0__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1144:1: rule__SignalDeclaration__Group_2_0__0 : rule__SignalDeclaration__Group_2_0__0__Impl rule__SignalDeclaration__Group_2_0__1 ;
+ public final void rule__SignalDeclaration__Group_2_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1148:1: ( rule__SignalDeclaration__Group_2_0__0__Impl rule__SignalDeclaration__Group_2_0__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1149:2: rule__SignalDeclaration__Group_2_0__0__Impl rule__SignalDeclaration__Group_2_0__1
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_2_0__0__Impl_in_rule__SignalDeclaration__Group_2_0__02265);
+ rule__SignalDeclaration__Group_2_0__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_2_0__1_in_rule__SignalDeclaration__Group_2_0__02268);
+ rule__SignalDeclaration__Group_2_0__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_2_0__0"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_2_0__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1156:1: rule__SignalDeclaration__Group_2_0__0__Impl : ( '=' ) ;
+ public final void rule__SignalDeclaration__Group_2_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1160:1: ( ( '=' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1161:1: ( '=' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1161:1: ( '=' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1162:1: '='
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_0_0());
+ match(input,19,FOLLOW_19_in_rule__SignalDeclaration__Group_2_0__0__Impl2296);
+ after(grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_2_0__0__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_2_0__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1175:1: rule__SignalDeclaration__Group_2_0__1 : rule__SignalDeclaration__Group_2_0__1__Impl ;
+ public final void rule__SignalDeclaration__Group_2_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1179:1: ( rule__SignalDeclaration__Group_2_0__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1180:2: rule__SignalDeclaration__Group_2_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_2_0__1__Impl_in_rule__SignalDeclaration__Group_2_0__12327);
+ rule__SignalDeclaration__Group_2_0__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_2_0__1"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_2_0__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1186:1: rule__SignalDeclaration__Group_2_0__1__Impl : ( ( rule__SignalDeclaration__IntValAssignment_2_0_1 ) ) ;
+ public final void rule__SignalDeclaration__Group_2_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1190:1: ( ( ( rule__SignalDeclaration__IntValAssignment_2_0_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1191:1: ( ( rule__SignalDeclaration__IntValAssignment_2_0_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1191:1: ( ( rule__SignalDeclaration__IntValAssignment_2_0_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1192:1: ( rule__SignalDeclaration__IntValAssignment_2_0_1 )
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getIntValAssignment_2_0_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1193:1: ( rule__SignalDeclaration__IntValAssignment_2_0_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1193:2: rule__SignalDeclaration__IntValAssignment_2_0_1
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__IntValAssignment_2_0_1_in_rule__SignalDeclaration__Group_2_0__1__Impl2354);
+ rule__SignalDeclaration__IntValAssignment_2_0_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getIntValAssignment_2_0_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_2_0__1__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_2_1__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1207:1: rule__SignalDeclaration__Group_2_1__0 : rule__SignalDeclaration__Group_2_1__0__Impl rule__SignalDeclaration__Group_2_1__1 ;
+ public final void rule__SignalDeclaration__Group_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1211:1: ( rule__SignalDeclaration__Group_2_1__0__Impl rule__SignalDeclaration__Group_2_1__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1212:2: rule__SignalDeclaration__Group_2_1__0__Impl rule__SignalDeclaration__Group_2_1__1
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_2_1__0__Impl_in_rule__SignalDeclaration__Group_2_1__02388);
+ rule__SignalDeclaration__Group_2_1__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_2_1__1_in_rule__SignalDeclaration__Group_2_1__02391);
+ rule__SignalDeclaration__Group_2_1__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_2_1__0"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_2_1__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1219:1: rule__SignalDeclaration__Group_2_1__0__Impl : ( '=' ) ;
+ public final void rule__SignalDeclaration__Group_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1223:1: ( ( '=' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1224:1: ( '=' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1224:1: ( '=' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1225:1: '='
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_1_0());
+ match(input,19,FOLLOW_19_in_rule__SignalDeclaration__Group_2_1__0__Impl2419);
+ after(grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_2_1__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1238:1: rule__SignalDeclaration__Group_2_1__1 : rule__SignalDeclaration__Group_2_1__1__Impl ;
+ public final void rule__SignalDeclaration__Group_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1242:1: ( rule__SignalDeclaration__Group_2_1__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1243:2: rule__SignalDeclaration__Group_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__Group_2_1__1__Impl_in_rule__SignalDeclaration__Group_2_1__12450);
+ rule__SignalDeclaration__Group_2_1__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_2_1__1"
+
+
+ // $ANTLR start "rule__SignalDeclaration__Group_2_1__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1249:1: rule__SignalDeclaration__Group_2_1__1__Impl : ( ( rule__SignalDeclaration__StrValAssignment_2_1_1 ) ) ;
+ public final void rule__SignalDeclaration__Group_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1253:1: ( ( ( rule__SignalDeclaration__StrValAssignment_2_1_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1254:1: ( ( rule__SignalDeclaration__StrValAssignment_2_1_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1254:1: ( ( rule__SignalDeclaration__StrValAssignment_2_1_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1255:1: ( rule__SignalDeclaration__StrValAssignment_2_1_1 )
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getStrValAssignment_2_1_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1256:1: ( rule__SignalDeclaration__StrValAssignment_2_1_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1256:2: rule__SignalDeclaration__StrValAssignment_2_1_1
+ {
+ pushFollow(FOLLOW_rule__SignalDeclaration__StrValAssignment_2_1_1_in_rule__SignalDeclaration__Group_2_1__1__Impl2477);
+ rule__SignalDeclaration__StrValAssignment_2_1_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSignalDeclarationAccess().getStrValAssignment_2_1_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__Group_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__SourceDeclaration__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1270:1: rule__SourceDeclaration__Group__0 : rule__SourceDeclaration__Group__0__Impl rule__SourceDeclaration__Group__1 ;
+ public final void rule__SourceDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1274:1: ( rule__SourceDeclaration__Group__0__Impl rule__SourceDeclaration__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1275:2: rule__SourceDeclaration__Group__0__Impl rule__SourceDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__SourceDeclaration__Group__0__Impl_in_rule__SourceDeclaration__Group__02511);
+ rule__SourceDeclaration__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SourceDeclaration__Group__1_in_rule__SourceDeclaration__Group__02514);
+ rule__SourceDeclaration__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SourceDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__SourceDeclaration__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1282:1: rule__SourceDeclaration__Group__0__Impl : ( ( rule__SourceDeclaration__RefAssignment_0 ) ) ;
+ public final void rule__SourceDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1286:1: ( ( ( rule__SourceDeclaration__RefAssignment_0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1287:1: ( ( rule__SourceDeclaration__RefAssignment_0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1287:1: ( ( rule__SourceDeclaration__RefAssignment_0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1288:1: ( rule__SourceDeclaration__RefAssignment_0 )
+ {
+ before(grammarAccess.getSourceDeclarationAccess().getRefAssignment_0());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1289:1: ( rule__SourceDeclaration__RefAssignment_0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1289:2: rule__SourceDeclaration__RefAssignment_0
+ {
+ pushFollow(FOLLOW_rule__SourceDeclaration__RefAssignment_0_in_rule__SourceDeclaration__Group__0__Impl2541);
+ rule__SourceDeclaration__RefAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSourceDeclarationAccess().getRefAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SourceDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SourceDeclaration__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1299:1: rule__SourceDeclaration__Group__1 : rule__SourceDeclaration__Group__1__Impl ;
+ public final void rule__SourceDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1303:1: ( rule__SourceDeclaration__Group__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1304:2: rule__SourceDeclaration__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__SourceDeclaration__Group__1__Impl_in_rule__SourceDeclaration__Group__12571);
+ rule__SourceDeclaration__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SourceDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__SourceDeclaration__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1310:1: rule__SourceDeclaration__Group__1__Impl : ( ':' ) ;
+ public final void rule__SourceDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1314:1: ( ( ':' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1315:1: ( ':' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1315:1: ( ':' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1316:1: ':'
+ {
+ before(grammarAccess.getSourceDeclarationAccess().getColonKeyword_1());
+ match(input,20,FOLLOW_20_in_rule__SourceDeclaration__Group__1__Impl2599);
+ after(grammarAccess.getSourceDeclarationAccess().getColonKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SourceDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__DestinationDeclaration__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1333:1: rule__DestinationDeclaration__Group__0 : rule__DestinationDeclaration__Group__0__Impl rule__DestinationDeclaration__Group__1 ;
+ public final void rule__DestinationDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1337:1: ( rule__DestinationDeclaration__Group__0__Impl rule__DestinationDeclaration__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1338:2: rule__DestinationDeclaration__Group__0__Impl rule__DestinationDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__DestinationDeclaration__Group__0__Impl_in_rule__DestinationDeclaration__Group__02634);
+ rule__DestinationDeclaration__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__DestinationDeclaration__Group__1_in_rule__DestinationDeclaration__Group__02637);
+ rule__DestinationDeclaration__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__DestinationDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__DestinationDeclaration__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1345:1: rule__DestinationDeclaration__Group__0__Impl : ( '-> ' ) ;
+ public final void rule__DestinationDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1349:1: ( ( '-> ' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1350:1: ( '-> ' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1350:1: ( '-> ' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1351:1: '-> '
+ {
+ before(grammarAccess.getDestinationDeclarationAccess().getHyphenMinusGreaterThanSignSpaceKeyword_0());
+ match(input,21,FOLLOW_21_in_rule__DestinationDeclaration__Group__0__Impl2665);
+ after(grammarAccess.getDestinationDeclarationAccess().getHyphenMinusGreaterThanSignSpaceKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__DestinationDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__DestinationDeclaration__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1364:1: rule__DestinationDeclaration__Group__1 : rule__DestinationDeclaration__Group__1__Impl ;
+ public final void rule__DestinationDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1368:1: ( rule__DestinationDeclaration__Group__1__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1369:2: rule__DestinationDeclaration__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__DestinationDeclaration__Group__1__Impl_in_rule__DestinationDeclaration__Group__12696);
+ rule__DestinationDeclaration__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__DestinationDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__DestinationDeclaration__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1375:1: rule__DestinationDeclaration__Group__1__Impl : ( ( rule__DestinationDeclaration__RefAssignment_1 ) ) ;
+ public final void rule__DestinationDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1379:1: ( ( ( rule__DestinationDeclaration__RefAssignment_1 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1380:1: ( ( rule__DestinationDeclaration__RefAssignment_1 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1380:1: ( ( rule__DestinationDeclaration__RefAssignment_1 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1381:1: ( rule__DestinationDeclaration__RefAssignment_1 )
+ {
+ before(grammarAccess.getDestinationDeclarationAccess().getRefAssignment_1());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1382:1: ( rule__DestinationDeclaration__RefAssignment_1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1382:2: rule__DestinationDeclaration__RefAssignment_1
+ {
+ pushFollow(FOLLOW_rule__DestinationDeclaration__RefAssignment_1_in_rule__DestinationDeclaration__Group__1__Impl2723);
+ rule__DestinationDeclaration__RefAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getDestinationDeclarationAccess().getRefAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__DestinationDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1396:1: rule__TransitionDeclaration__Group__0 : rule__TransitionDeclaration__Group__0__Impl rule__TransitionDeclaration__Group__1 ;
+ public final void rule__TransitionDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1400:1: ( rule__TransitionDeclaration__Group__0__Impl rule__TransitionDeclaration__Group__1 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1401:2: rule__TransitionDeclaration__Group__0__Impl rule__TransitionDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__0__Impl_in_rule__TransitionDeclaration__Group__02757);
+ rule__TransitionDeclaration__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__1_in_rule__TransitionDeclaration__Group__02760);
+ rule__TransitionDeclaration__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__0__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1408:1: rule__TransitionDeclaration__Group__0__Impl : ( ( rule__TransitionDeclaration__SourceAssignment_0 ) ) ;
+ public final void rule__TransitionDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1412:1: ( ( ( rule__TransitionDeclaration__SourceAssignment_0 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1413:1: ( ( rule__TransitionDeclaration__SourceAssignment_0 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1413:1: ( ( rule__TransitionDeclaration__SourceAssignment_0 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1414:1: ( rule__TransitionDeclaration__SourceAssignment_0 )
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getSourceAssignment_0());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1415:1: ( rule__TransitionDeclaration__SourceAssignment_0 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1415:2: rule__TransitionDeclaration__SourceAssignment_0
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__SourceAssignment_0_in_rule__TransitionDeclaration__Group__0__Impl2787);
+ rule__TransitionDeclaration__SourceAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionDeclarationAccess().getSourceAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1425:1: rule__TransitionDeclaration__Group__1 : rule__TransitionDeclaration__Group__1__Impl rule__TransitionDeclaration__Group__2 ;
+ public final void rule__TransitionDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1429:1: ( rule__TransitionDeclaration__Group__1__Impl rule__TransitionDeclaration__Group__2 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1430:2: rule__TransitionDeclaration__Group__1__Impl rule__TransitionDeclaration__Group__2
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__1__Impl_in_rule__TransitionDeclaration__Group__12817);
+ rule__TransitionDeclaration__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__2_in_rule__TransitionDeclaration__Group__12820);
+ rule__TransitionDeclaration__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__1__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1437:1: rule__TransitionDeclaration__Group__1__Impl : ( 'in:' ) ;
+ public final void rule__TransitionDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1441:1: ( ( 'in:' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1442:1: ( 'in:' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1442:1: ( 'in:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1443:1: 'in:'
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getInKeyword_1());
+ match(input,22,FOLLOW_22_in_rule__TransitionDeclaration__Group__1__Impl2848);
+ after(grammarAccess.getTransitionDeclarationAccess().getInKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__2"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1456:1: rule__TransitionDeclaration__Group__2 : rule__TransitionDeclaration__Group__2__Impl rule__TransitionDeclaration__Group__3 ;
+ public final void rule__TransitionDeclaration__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1460:1: ( rule__TransitionDeclaration__Group__2__Impl rule__TransitionDeclaration__Group__3 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1461:2: rule__TransitionDeclaration__Group__2__Impl rule__TransitionDeclaration__Group__3
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__2__Impl_in_rule__TransitionDeclaration__Group__22879);
+ rule__TransitionDeclaration__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__3_in_rule__TransitionDeclaration__Group__22882);
+ rule__TransitionDeclaration__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__2"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__2__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1468:1: rule__TransitionDeclaration__Group__2__Impl : ( ( rule__TransitionDeclaration__InAssignment_2 )* ) ;
+ public final void rule__TransitionDeclaration__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1472:1: ( ( ( rule__TransitionDeclaration__InAssignment_2 )* ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1473:1: ( ( rule__TransitionDeclaration__InAssignment_2 )* )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1473:1: ( ( rule__TransitionDeclaration__InAssignment_2 )* )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1474:1: ( rule__TransitionDeclaration__InAssignment_2 )*
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getInAssignment_2());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1475:1: ( rule__TransitionDeclaration__InAssignment_2 )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==RULE_ID) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1475:2: rule__TransitionDeclaration__InAssignment_2
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__InAssignment_2_in_rule__TransitionDeclaration__Group__2__Impl2909);
+ rule__TransitionDeclaration__InAssignment_2();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ after(grammarAccess.getTransitionDeclarationAccess().getInAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__2__Impl"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__3"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1485:1: rule__TransitionDeclaration__Group__3 : rule__TransitionDeclaration__Group__3__Impl rule__TransitionDeclaration__Group__4 ;
+ public final void rule__TransitionDeclaration__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1489:1: ( rule__TransitionDeclaration__Group__3__Impl rule__TransitionDeclaration__Group__4 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1490:2: rule__TransitionDeclaration__Group__3__Impl rule__TransitionDeclaration__Group__4
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__3__Impl_in_rule__TransitionDeclaration__Group__32940);
+ rule__TransitionDeclaration__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__4_in_rule__TransitionDeclaration__Group__32943);
+ rule__TransitionDeclaration__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__3"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__3__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1497:1: rule__TransitionDeclaration__Group__3__Impl : ( 'out:' ) ;
+ public final void rule__TransitionDeclaration__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1501:1: ( ( 'out:' ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1502:1: ( 'out:' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1502:1: ( 'out:' )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1503:1: 'out:'
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getOutKeyword_3());
+ match(input,23,FOLLOW_23_in_rule__TransitionDeclaration__Group__3__Impl2971);
+ after(grammarAccess.getTransitionDeclarationAccess().getOutKeyword_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__3__Impl"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__4"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1516:1: rule__TransitionDeclaration__Group__4 : rule__TransitionDeclaration__Group__4__Impl rule__TransitionDeclaration__Group__5 ;
+ public final void rule__TransitionDeclaration__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1520:1: ( rule__TransitionDeclaration__Group__4__Impl rule__TransitionDeclaration__Group__5 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1521:2: rule__TransitionDeclaration__Group__4__Impl rule__TransitionDeclaration__Group__5
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__4__Impl_in_rule__TransitionDeclaration__Group__43002);
+ rule__TransitionDeclaration__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__5_in_rule__TransitionDeclaration__Group__43005);
+ rule__TransitionDeclaration__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__4"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__4__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1528:1: rule__TransitionDeclaration__Group__4__Impl : ( ( rule__TransitionDeclaration__OutAssignment_4 )* ) ;
+ public final void rule__TransitionDeclaration__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1532:1: ( ( ( rule__TransitionDeclaration__OutAssignment_4 )* ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1533:1: ( ( rule__TransitionDeclaration__OutAssignment_4 )* )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1533:1: ( ( rule__TransitionDeclaration__OutAssignment_4 )* )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1534:1: ( rule__TransitionDeclaration__OutAssignment_4 )*
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getOutAssignment_4());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1535:1: ( rule__TransitionDeclaration__OutAssignment_4 )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==RULE_ID) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1535:2: rule__TransitionDeclaration__OutAssignment_4
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__OutAssignment_4_in_rule__TransitionDeclaration__Group__4__Impl3032);
+ rule__TransitionDeclaration__OutAssignment_4();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+ after(grammarAccess.getTransitionDeclarationAccess().getOutAssignment_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__4__Impl"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__5"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1545:1: rule__TransitionDeclaration__Group__5 : rule__TransitionDeclaration__Group__5__Impl ;
+ public final void rule__TransitionDeclaration__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1549:1: ( rule__TransitionDeclaration__Group__5__Impl )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1550:2: rule__TransitionDeclaration__Group__5__Impl
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__Group__5__Impl_in_rule__TransitionDeclaration__Group__53063);
+ rule__TransitionDeclaration__Group__5__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__5"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__Group__5__Impl"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1556:1: rule__TransitionDeclaration__Group__5__Impl : ( ( rule__TransitionDeclaration__DestinationAssignment_5 ) ) ;
+ public final void rule__TransitionDeclaration__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1560:1: ( ( ( rule__TransitionDeclaration__DestinationAssignment_5 ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1561:1: ( ( rule__TransitionDeclaration__DestinationAssignment_5 ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1561:1: ( ( rule__TransitionDeclaration__DestinationAssignment_5 ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1562:1: ( rule__TransitionDeclaration__DestinationAssignment_5 )
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getDestinationAssignment_5());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1563:1: ( rule__TransitionDeclaration__DestinationAssignment_5 )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1563:2: rule__TransitionDeclaration__DestinationAssignment_5
+ {
+ pushFollow(FOLLOW_rule__TransitionDeclaration__DestinationAssignment_5_in_rule__TransitionDeclaration__Group__5__Impl3090);
+ rule__TransitionDeclaration__DestinationAssignment_5();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionDeclarationAccess().getDestinationAssignment_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Model__TestscriptsAssignment"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1586:1: rule__Model__TestscriptsAssignment : ( ruleTestscript ) ;
+ public final void rule__Model__TestscriptsAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1590:1: ( ( ruleTestscript ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1591:1: ( ruleTestscript )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1591:1: ( ruleTestscript )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1592:1: ruleTestscript
+ {
+ before(grammarAccess.getModelAccess().getTestscriptsTestscriptParserRuleCall_0());
+ pushFollow(FOLLOW_ruleTestscript_in_rule__Model__TestscriptsAssignment3137);
+ ruleTestscript();
+
+ state._fsp--;
+
+ after(grammarAccess.getModelAccess().getTestscriptsTestscriptParserRuleCall_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Model__TestscriptsAssignment"
+
+
+ // $ANTLR start "rule__Testscript__NameAssignment_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1601:1: rule__Testscript__NameAssignment_1 : ( RULE_ID ) ;
+ public final void rule__Testscript__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1605:1: ( ( RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1606:1: ( RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1606:1: ( RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1607:1: RULE_ID
+ {
+ before(grammarAccess.getTestscriptAccess().getNameIDTerminalRuleCall_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Testscript__NameAssignment_13168);
+ after(grammarAccess.getTestscriptAccess().getNameIDTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__NameAssignment_1"
+
+
+ // $ANTLR start "rule__Testscript__StateDeclarationAssignment_2"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1616:1: rule__Testscript__StateDeclarationAssignment_2 : ( ruleStateDeclaration ) ;
+ public final void rule__Testscript__StateDeclarationAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1620:1: ( ( ruleStateDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1621:1: ( ruleStateDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1621:1: ( ruleStateDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1622:1: ruleStateDeclaration
+ {
+ before(grammarAccess.getTestscriptAccess().getStateDeclarationStateDeclarationParserRuleCall_2_0());
+ pushFollow(FOLLOW_ruleStateDeclaration_in_rule__Testscript__StateDeclarationAssignment_23199);
+ ruleStateDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTestscriptAccess().getStateDeclarationStateDeclarationParserRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__StateDeclarationAssignment_2"
+
+
+ // $ANTLR start "rule__Testscript__InitialDeclarationAssignment_3"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1631:1: rule__Testscript__InitialDeclarationAssignment_3 : ( ruleInitialDeclaration ) ;
+ public final void rule__Testscript__InitialDeclarationAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1635:1: ( ( ruleInitialDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1636:1: ( ruleInitialDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1636:1: ( ruleInitialDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1637:1: ruleInitialDeclaration
+ {
+ before(grammarAccess.getTestscriptAccess().getInitialDeclarationInitialDeclarationParserRuleCall_3_0());
+ pushFollow(FOLLOW_ruleInitialDeclaration_in_rule__Testscript__InitialDeclarationAssignment_33230);
+ ruleInitialDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTestscriptAccess().getInitialDeclarationInitialDeclarationParserRuleCall_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__InitialDeclarationAssignment_3"
+
+
+ // $ANTLR start "rule__Testscript__LoopsDeclarationAssignment_4"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1646:1: rule__Testscript__LoopsDeclarationAssignment_4 : ( ruleLoopsDeclaration ) ;
+ public final void rule__Testscript__LoopsDeclarationAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1650:1: ( ( ruleLoopsDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1651:1: ( ruleLoopsDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1651:1: ( ruleLoopsDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1652:1: ruleLoopsDeclaration
+ {
+ before(grammarAccess.getTestscriptAccess().getLoopsDeclarationLoopsDeclarationParserRuleCall_4_0());
+ pushFollow(FOLLOW_ruleLoopsDeclaration_in_rule__Testscript__LoopsDeclarationAssignment_43261);
+ ruleLoopsDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTestscriptAccess().getLoopsDeclarationLoopsDeclarationParserRuleCall_4_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__LoopsDeclarationAssignment_4"
+
+
+ // $ANTLR start "rule__Testscript__SeedDeclarationAssignment_5"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1661:1: rule__Testscript__SeedDeclarationAssignment_5 : ( ruleSeedDeclaration ) ;
+ public final void rule__Testscript__SeedDeclarationAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1665:1: ( ( ruleSeedDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1666:1: ( ruleSeedDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1666:1: ( ruleSeedDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1667:1: ruleSeedDeclaration
+ {
+ before(grammarAccess.getTestscriptAccess().getSeedDeclarationSeedDeclarationParserRuleCall_5_0());
+ pushFollow(FOLLOW_ruleSeedDeclaration_in_rule__Testscript__SeedDeclarationAssignment_53292);
+ ruleSeedDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTestscriptAccess().getSeedDeclarationSeedDeclarationParserRuleCall_5_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__SeedDeclarationAssignment_5"
+
+
+ // $ANTLR start "rule__Testscript__TransitionDeclarationsAssignment_6"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1676:1: rule__Testscript__TransitionDeclarationsAssignment_6 : ( ruleTransitionDeclaration ) ;
+ public final void rule__Testscript__TransitionDeclarationsAssignment_6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1680:1: ( ( ruleTransitionDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1681:1: ( ruleTransitionDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1681:1: ( ruleTransitionDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1682:1: ruleTransitionDeclaration
+ {
+ before(grammarAccess.getTestscriptAccess().getTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0());
+ pushFollow(FOLLOW_ruleTransitionDeclaration_in_rule__Testscript__TransitionDeclarationsAssignment_63323);
+ ruleTransitionDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTestscriptAccess().getTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Testscript__TransitionDeclarationsAssignment_6"
+
+
+ // $ANTLR start "rule__State__NameAssignment"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1691:1: rule__State__NameAssignment : ( RULE_ID ) ;
+ public final void rule__State__NameAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1695:1: ( ( RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1696:1: ( RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1696:1: ( RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1697:1: RULE_ID
+ {
+ before(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__State__NameAssignment3354);
+ after(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__NameAssignment"
+
+
+ // $ANTLR start "rule__StateDeclaration__StatesAssignment_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1706:1: rule__StateDeclaration__StatesAssignment_1 : ( ruleState ) ;
+ public final void rule__StateDeclaration__StatesAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1710:1: ( ( ruleState ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1711:1: ( ruleState )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1711:1: ( ruleState )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1712:1: ruleState
+ {
+ before(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_1_0());
+ pushFollow(FOLLOW_ruleState_in_rule__StateDeclaration__StatesAssignment_13385);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__StatesAssignment_1"
+
+
+ // $ANTLR start "rule__StateDeclaration__StatesAssignment_2_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1721:1: rule__StateDeclaration__StatesAssignment_2_1 : ( ruleState ) ;
+ public final void rule__StateDeclaration__StatesAssignment_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1725:1: ( ( ruleState ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1726:1: ( ruleState )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1726:1: ( ruleState )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1727:1: ruleState
+ {
+ before(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_2_1_0());
+ pushFollow(FOLLOW_ruleState_in_rule__StateDeclaration__StatesAssignment_2_13416);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_2_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StateDeclaration__StatesAssignment_2_1"
+
+
+ // $ANTLR start "rule__InitialDeclaration__InitialAssignment_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1736:1: rule__InitialDeclaration__InitialAssignment_1 : ( ( RULE_ID ) ) ;
+ public final void rule__InitialDeclaration__InitialAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1740:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1741:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1741:1: ( ( RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1742:1: ( RULE_ID )
+ {
+ before(grammarAccess.getInitialDeclarationAccess().getInitialStateCrossReference_1_0());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1743:1: ( RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1744:1: RULE_ID
+ {
+ before(grammarAccess.getInitialDeclarationAccess().getInitialStateIDTerminalRuleCall_1_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__InitialDeclaration__InitialAssignment_13451);
+ after(grammarAccess.getInitialDeclarationAccess().getInitialStateIDTerminalRuleCall_1_0_1());
+
+ }
+
+ after(grammarAccess.getInitialDeclarationAccess().getInitialStateCrossReference_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__InitialDeclaration__InitialAssignment_1"
+
+
+ // $ANTLR start "rule__LoopsDeclaration__ValAssignment_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1755:1: rule__LoopsDeclaration__ValAssignment_1 : ( RULE_INT ) ;
+ public final void rule__LoopsDeclaration__ValAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1759:1: ( ( RULE_INT ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1760:1: ( RULE_INT )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1760:1: ( RULE_INT )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1761:1: RULE_INT
+ {
+ before(grammarAccess.getLoopsDeclarationAccess().getValINTTerminalRuleCall_1_0());
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__LoopsDeclaration__ValAssignment_13486);
+ after(grammarAccess.getLoopsDeclarationAccess().getValINTTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoopsDeclaration__ValAssignment_1"
+
+
+ // $ANTLR start "rule__SeedDeclaration__ValAssignment_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1770:1: rule__SeedDeclaration__ValAssignment_1 : ( RULE_INT ) ;
+ public final void rule__SeedDeclaration__ValAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1774:1: ( ( RULE_INT ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1775:1: ( RULE_INT )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1775:1: ( RULE_INT )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1776:1: RULE_INT
+ {
+ before(grammarAccess.getSeedDeclarationAccess().getValINTTerminalRuleCall_1_0());
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__SeedDeclaration__ValAssignment_13517);
+ after(grammarAccess.getSeedDeclarationAccess().getValINTTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SeedDeclaration__ValAssignment_1"
+
+
+ // $ANTLR start "rule__SignalDeclaration__PortAssignment_0_0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1785:1: rule__SignalDeclaration__PortAssignment_0_0 : ( RULE_ID ) ;
+ public final void rule__SignalDeclaration__PortAssignment_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1789:1: ( ( RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1790:1: ( RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1790:1: ( RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1791:1: RULE_ID
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getPortIDTerminalRuleCall_0_0_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SignalDeclaration__PortAssignment_0_03548);
+ after(grammarAccess.getSignalDeclarationAccess().getPortIDTerminalRuleCall_0_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__PortAssignment_0_0"
+
+
+ // $ANTLR start "rule__SignalDeclaration__SignameAssignment_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1800:1: rule__SignalDeclaration__SignameAssignment_1 : ( RULE_ID ) ;
+ public final void rule__SignalDeclaration__SignameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1804:1: ( ( RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1805:1: ( RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1805:1: ( RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1806:1: RULE_ID
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getSignameIDTerminalRuleCall_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SignalDeclaration__SignameAssignment_13579);
+ after(grammarAccess.getSignalDeclarationAccess().getSignameIDTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__SignameAssignment_1"
+
+
+ // $ANTLR start "rule__SignalDeclaration__IntValAssignment_2_0_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1815:1: rule__SignalDeclaration__IntValAssignment_2_0_1 : ( RULE_INT ) ;
+ public final void rule__SignalDeclaration__IntValAssignment_2_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1819:1: ( ( RULE_INT ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1820:1: ( RULE_INT )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1820:1: ( RULE_INT )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1821:1: RULE_INT
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getIntValINTTerminalRuleCall_2_0_1_0());
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__SignalDeclaration__IntValAssignment_2_0_13610);
+ after(grammarAccess.getSignalDeclarationAccess().getIntValINTTerminalRuleCall_2_0_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__IntValAssignment_2_0_1"
+
+
+ // $ANTLR start "rule__SignalDeclaration__StrValAssignment_2_1_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1830:1: rule__SignalDeclaration__StrValAssignment_2_1_1 : ( RULE_STRING ) ;
+ public final void rule__SignalDeclaration__StrValAssignment_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1834:1: ( ( RULE_STRING ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1835:1: ( RULE_STRING )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1835:1: ( RULE_STRING )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1836:1: RULE_STRING
+ {
+ before(grammarAccess.getSignalDeclarationAccess().getStrValSTRINGTerminalRuleCall_2_1_1_0());
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__SignalDeclaration__StrValAssignment_2_1_13641);
+ after(grammarAccess.getSignalDeclarationAccess().getStrValSTRINGTerminalRuleCall_2_1_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SignalDeclaration__StrValAssignment_2_1_1"
+
+
+ // $ANTLR start "rule__SourceDeclaration__RefAssignment_0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1845:1: rule__SourceDeclaration__RefAssignment_0 : ( ( RULE_ID ) ) ;
+ public final void rule__SourceDeclaration__RefAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1849:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1850:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1850:1: ( ( RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1851:1: ( RULE_ID )
+ {
+ before(grammarAccess.getSourceDeclarationAccess().getRefStateCrossReference_0_0());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1852:1: ( RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1853:1: RULE_ID
+ {
+ before(grammarAccess.getSourceDeclarationAccess().getRefStateIDTerminalRuleCall_0_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SourceDeclaration__RefAssignment_03676);
+ after(grammarAccess.getSourceDeclarationAccess().getRefStateIDTerminalRuleCall_0_0_1());
+
+ }
+
+ after(grammarAccess.getSourceDeclarationAccess().getRefStateCrossReference_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SourceDeclaration__RefAssignment_0"
+
+
+ // $ANTLR start "rule__DestinationDeclaration__RefAssignment_1"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1864:1: rule__DestinationDeclaration__RefAssignment_1 : ( ( RULE_ID ) ) ;
+ public final void rule__DestinationDeclaration__RefAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1868:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1869:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1869:1: ( ( RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1870:1: ( RULE_ID )
+ {
+ before(grammarAccess.getDestinationDeclarationAccess().getRefStateCrossReference_1_0());
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1871:1: ( RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1872:1: RULE_ID
+ {
+ before(grammarAccess.getDestinationDeclarationAccess().getRefStateIDTerminalRuleCall_1_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DestinationDeclaration__RefAssignment_13715);
+ after(grammarAccess.getDestinationDeclarationAccess().getRefStateIDTerminalRuleCall_1_0_1());
+
+ }
+
+ after(grammarAccess.getDestinationDeclarationAccess().getRefStateCrossReference_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__DestinationDeclaration__RefAssignment_1"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__SourceAssignment_0"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1883:1: rule__TransitionDeclaration__SourceAssignment_0 : ( ruleSourceDeclaration ) ;
+ public final void rule__TransitionDeclaration__SourceAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1887:1: ( ( ruleSourceDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1888:1: ( ruleSourceDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1888:1: ( ruleSourceDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1889:1: ruleSourceDeclaration
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getSourceSourceDeclarationParserRuleCall_0_0());
+ pushFollow(FOLLOW_ruleSourceDeclaration_in_rule__TransitionDeclaration__SourceAssignment_03750);
+ ruleSourceDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTransitionDeclarationAccess().getSourceSourceDeclarationParserRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__SourceAssignment_0"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__InAssignment_2"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1898:1: rule__TransitionDeclaration__InAssignment_2 : ( ruleSignalDeclaration ) ;
+ public final void rule__TransitionDeclaration__InAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1902:1: ( ( ruleSignalDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1903:1: ( ruleSignalDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1903:1: ( ruleSignalDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1904:1: ruleSignalDeclaration
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getInSignalDeclarationParserRuleCall_2_0());
+ pushFollow(FOLLOW_ruleSignalDeclaration_in_rule__TransitionDeclaration__InAssignment_23781);
+ ruleSignalDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTransitionDeclarationAccess().getInSignalDeclarationParserRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__InAssignment_2"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__OutAssignment_4"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1913:1: rule__TransitionDeclaration__OutAssignment_4 : ( ruleSignalDeclaration ) ;
+ public final void rule__TransitionDeclaration__OutAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1917:1: ( ( ruleSignalDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1918:1: ( ruleSignalDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1918:1: ( ruleSignalDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1919:1: ruleSignalDeclaration
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getOutSignalDeclarationParserRuleCall_4_0());
+ pushFollow(FOLLOW_ruleSignalDeclaration_in_rule__TransitionDeclaration__OutAssignment_43812);
+ ruleSignalDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTransitionDeclarationAccess().getOutSignalDeclarationParserRuleCall_4_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__OutAssignment_4"
+
+
+ // $ANTLR start "rule__TransitionDeclaration__DestinationAssignment_5"
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1928:1: rule__TransitionDeclaration__DestinationAssignment_5 : ( ruleDestinationDeclaration ) ;
+ public final void rule__TransitionDeclaration__DestinationAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1932:1: ( ( ruleDestinationDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1933:1: ( ruleDestinationDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1933:1: ( ruleDestinationDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/contentassist/antlr/internal/InternalFSMtest.g:1934:1: ruleDestinationDeclaration
+ {
+ before(grammarAccess.getTransitionDeclarationAccess().getDestinationDestinationDeclarationParserRuleCall_5_0());
+ pushFollow(FOLLOW_ruleDestinationDeclaration_in_rule__TransitionDeclaration__DestinationAssignment_53843);
+ ruleDestinationDeclaration();
+
+ state._fsp--;
+
+ after(grammarAccess.getTransitionDeclarationAccess().getDestinationDestinationDeclarationParserRuleCall_5_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TransitionDeclaration__DestinationAssignment_5"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleModel_in_entryRuleModel61 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModel68 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Model__TestscriptsAssignment_in_ruleModel94 = new BitSet(new long[]{0x0000000000000802L});
+ public static final BitSet FOLLOW_ruleTestscript_in_entryRuleTestscript122 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTestscript129 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__0_in_ruleTestscript155 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_entryRuleState182 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleState189 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__NameAssignment_in_ruleState215 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStateDeclaration_in_entryRuleStateDeclaration242 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStateDeclaration249 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group__0_in_ruleStateDeclaration275 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInitialDeclaration_in_entryRuleInitialDeclaration302 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInitialDeclaration309 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__InitialDeclaration__Group__0_in_ruleInitialDeclaration335 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLoopsDeclaration_in_entryRuleLoopsDeclaration362 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLoopsDeclaration369 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LoopsDeclaration__Group__0_in_ruleLoopsDeclaration395 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSeedDeclaration_in_entryRuleSeedDeclaration422 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSeedDeclaration429 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SeedDeclaration__Group__0_in_ruleSeedDeclaration455 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSignalDeclaration_in_entryRuleSignalDeclaration482 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSignalDeclaration489 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group__0_in_ruleSignalDeclaration515 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSourceDeclaration_in_entryRuleSourceDeclaration542 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSourceDeclaration549 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SourceDeclaration__Group__0_in_ruleSourceDeclaration575 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleDestinationDeclaration_in_entryRuleDestinationDeclaration602 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleDestinationDeclaration609 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__DestinationDeclaration__Group__0_in_ruleDestinationDeclaration635 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransitionDeclaration_in_entryRuleTransitionDeclaration662 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTransitionDeclaration669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__0_in_ruleTransitionDeclaration695 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_2_0__0_in_rule__SignalDeclaration__Alternatives_2731 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_2_1__0_in_rule__SignalDeclaration__Alternatives_2749 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__0__Impl_in_rule__Testscript__Group__0780 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__1_in_rule__Testscript__Group__0783 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_rule__Testscript__Group__0__Impl811 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__1__Impl_in_rule__Testscript__Group__1842 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__2_in_rule__Testscript__Group__1845 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__NameAssignment_1_in_rule__Testscript__Group__1__Impl872 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__2__Impl_in_rule__Testscript__Group__2902 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__3_in_rule__Testscript__Group__2905 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__StateDeclarationAssignment_2_in_rule__Testscript__Group__2__Impl932 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__3__Impl_in_rule__Testscript__Group__3962 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__4_in_rule__Testscript__Group__3965 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__InitialDeclarationAssignment_3_in_rule__Testscript__Group__3__Impl992 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__4__Impl_in_rule__Testscript__Group__41022 = new BitSet(new long[]{0x0000000000021010L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__5_in_rule__Testscript__Group__41025 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__LoopsDeclarationAssignment_4_in_rule__Testscript__Group__4__Impl1052 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__5__Impl_in_rule__Testscript__Group__51082 = new BitSet(new long[]{0x0000000000021010L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__6_in_rule__Testscript__Group__51085 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__SeedDeclarationAssignment_5_in_rule__Testscript__Group__5__Impl1112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__6__Impl_in_rule__Testscript__Group__61143 = new BitSet(new long[]{0x0000000000021010L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__7_in_rule__Testscript__Group__61146 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Testscript__TransitionDeclarationsAssignment_6_in_rule__Testscript__Group__6__Impl1173 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__Testscript__Group__7__Impl_in_rule__Testscript__Group__71204 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__Testscript__Group__7__Impl1232 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group__0__Impl_in_rule__StateDeclaration__Group__01279 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group__1_in_rule__StateDeclaration__Group__01282 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__StateDeclaration__Group__0__Impl1310 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group__1__Impl_in_rule__StateDeclaration__Group__11341 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group__2_in_rule__StateDeclaration__Group__11344 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__StatesAssignment_1_in_rule__StateDeclaration__Group__1__Impl1371 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group__2__Impl_in_rule__StateDeclaration__Group__21401 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group_2__0_in_rule__StateDeclaration__Group__2__Impl1428 = new BitSet(new long[]{0x0000000000004002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group_2__0__Impl_in_rule__StateDeclaration__Group_2__01465 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group_2__1_in_rule__StateDeclaration__Group_2__01468 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_14_in_rule__StateDeclaration__Group_2__0__Impl1496 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__Group_2__1__Impl_in_rule__StateDeclaration__Group_2__11527 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__StateDeclaration__StatesAssignment_2_1_in_rule__StateDeclaration__Group_2__1__Impl1554 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__InitialDeclaration__Group__0__Impl_in_rule__InitialDeclaration__Group__01588 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__InitialDeclaration__Group__1_in_rule__InitialDeclaration__Group__01591 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_rule__InitialDeclaration__Group__0__Impl1619 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__InitialDeclaration__Group__1__Impl_in_rule__InitialDeclaration__Group__11650 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__InitialDeclaration__InitialAssignment_1_in_rule__InitialDeclaration__Group__1__Impl1677 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LoopsDeclaration__Group__0__Impl_in_rule__LoopsDeclaration__Group__01711 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__LoopsDeclaration__Group__1_in_rule__LoopsDeclaration__Group__01714 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__LoopsDeclaration__Group__0__Impl1742 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LoopsDeclaration__Group__1__Impl_in_rule__LoopsDeclaration__Group__11773 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LoopsDeclaration__ValAssignment_1_in_rule__LoopsDeclaration__Group__1__Impl1800 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SeedDeclaration__Group__0__Impl_in_rule__SeedDeclaration__Group__01834 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__SeedDeclaration__Group__1_in_rule__SeedDeclaration__Group__01837 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_rule__SeedDeclaration__Group__0__Impl1865 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SeedDeclaration__Group__1__Impl_in_rule__SeedDeclaration__Group__11896 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SeedDeclaration__ValAssignment_1_in_rule__SeedDeclaration__Group__1__Impl1923 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group__0__Impl_in_rule__SignalDeclaration__Group__01957 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group__1_in_rule__SignalDeclaration__Group__01960 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_0__0_in_rule__SignalDeclaration__Group__0__Impl1987 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group__1__Impl_in_rule__SignalDeclaration__Group__12018 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group__2_in_rule__SignalDeclaration__Group__12021 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__SignameAssignment_1_in_rule__SignalDeclaration__Group__1__Impl2048 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group__2__Impl_in_rule__SignalDeclaration__Group__22078 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Alternatives_2_in_rule__SignalDeclaration__Group__2__Impl2105 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_0__0__Impl_in_rule__SignalDeclaration__Group_0__02142 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_0__1_in_rule__SignalDeclaration__Group_0__02145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__PortAssignment_0_0_in_rule__SignalDeclaration__Group_0__0__Impl2172 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_0__1__Impl_in_rule__SignalDeclaration__Group_0__12202 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__SignalDeclaration__Group_0__1__Impl2230 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_2_0__0__Impl_in_rule__SignalDeclaration__Group_2_0__02265 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_2_0__1_in_rule__SignalDeclaration__Group_2_0__02268 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_rule__SignalDeclaration__Group_2_0__0__Impl2296 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_2_0__1__Impl_in_rule__SignalDeclaration__Group_2_0__12327 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__IntValAssignment_2_0_1_in_rule__SignalDeclaration__Group_2_0__1__Impl2354 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_2_1__0__Impl_in_rule__SignalDeclaration__Group_2_1__02388 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_2_1__1_in_rule__SignalDeclaration__Group_2_1__02391 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_rule__SignalDeclaration__Group_2_1__0__Impl2419 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__Group_2_1__1__Impl_in_rule__SignalDeclaration__Group_2_1__12450 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SignalDeclaration__StrValAssignment_2_1_1_in_rule__SignalDeclaration__Group_2_1__1__Impl2477 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SourceDeclaration__Group__0__Impl_in_rule__SourceDeclaration__Group__02511 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_rule__SourceDeclaration__Group__1_in_rule__SourceDeclaration__Group__02514 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SourceDeclaration__RefAssignment_0_in_rule__SourceDeclaration__Group__0__Impl2541 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SourceDeclaration__Group__1__Impl_in_rule__SourceDeclaration__Group__12571 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_20_in_rule__SourceDeclaration__Group__1__Impl2599 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__DestinationDeclaration__Group__0__Impl_in_rule__DestinationDeclaration__Group__02634 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__DestinationDeclaration__Group__1_in_rule__DestinationDeclaration__Group__02637 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_21_in_rule__DestinationDeclaration__Group__0__Impl2665 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__DestinationDeclaration__Group__1__Impl_in_rule__DestinationDeclaration__Group__12696 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__DestinationDeclaration__RefAssignment_1_in_rule__DestinationDeclaration__Group__1__Impl2723 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__0__Impl_in_rule__TransitionDeclaration__Group__02757 = new BitSet(new long[]{0x0000000000400000L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__1_in_rule__TransitionDeclaration__Group__02760 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__SourceAssignment_0_in_rule__TransitionDeclaration__Group__0__Impl2787 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__1__Impl_in_rule__TransitionDeclaration__Group__12817 = new BitSet(new long[]{0x0000000000800010L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__2_in_rule__TransitionDeclaration__Group__12820 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_rule__TransitionDeclaration__Group__1__Impl2848 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__2__Impl_in_rule__TransitionDeclaration__Group__22879 = new BitSet(new long[]{0x0000000000800010L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__3_in_rule__TransitionDeclaration__Group__22882 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__InAssignment_2_in_rule__TransitionDeclaration__Group__2__Impl2909 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__3__Impl_in_rule__TransitionDeclaration__Group__32940 = new BitSet(new long[]{0x0000000000200010L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__4_in_rule__TransitionDeclaration__Group__32943 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_23_in_rule__TransitionDeclaration__Group__3__Impl2971 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__4__Impl_in_rule__TransitionDeclaration__Group__43002 = new BitSet(new long[]{0x0000000000200010L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__5_in_rule__TransitionDeclaration__Group__43005 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__OutAssignment_4_in_rule__TransitionDeclaration__Group__4__Impl3032 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__Group__5__Impl_in_rule__TransitionDeclaration__Group__53063 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__TransitionDeclaration__DestinationAssignment_5_in_rule__TransitionDeclaration__Group__5__Impl3090 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTestscript_in_rule__Model__TestscriptsAssignment3137 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Testscript__NameAssignment_13168 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStateDeclaration_in_rule__Testscript__StateDeclarationAssignment_23199 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleInitialDeclaration_in_rule__Testscript__InitialDeclarationAssignment_33230 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLoopsDeclaration_in_rule__Testscript__LoopsDeclarationAssignment_43261 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSeedDeclaration_in_rule__Testscript__SeedDeclarationAssignment_53292 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransitionDeclaration_in_rule__Testscript__TransitionDeclarationsAssignment_63323 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__State__NameAssignment3354 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_rule__StateDeclaration__StatesAssignment_13385 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_rule__StateDeclaration__StatesAssignment_2_13416 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__InitialDeclaration__InitialAssignment_13451 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__LoopsDeclaration__ValAssignment_13486 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__SeedDeclaration__ValAssignment_13517 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__SignalDeclaration__PortAssignment_0_03548 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__SignalDeclaration__SignameAssignment_13579 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__SignalDeclaration__IntValAssignment_2_0_13610 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_rule__SignalDeclaration__StrValAssignment_2_1_13641 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__SourceDeclaration__RefAssignment_03676 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__DestinationDeclaration__RefAssignment_13715 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSourceDeclaration_in_rule__TransitionDeclaration__SourceAssignment_03750 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSignalDeclaration_in_rule__TransitionDeclaration__InAssignment_23781 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSignalDeclaration_in_rule__TransitionDeclaration__OutAssignment_43812 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleDestinationDeclaration_in_rule__TransitionDeclaration__DestinationAssignment_53843 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/internal/FSMtestActivator.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/internal/FSMtestActivator.java
new file mode 100644
index 000000000..3d8efd033
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src-gen/org/eclipse/etrice/generator/ui/internal/FSMtestActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator.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 FSMtestActivator extends AbstractUIPlugin {
+
+ public static final String ORG_ECLIPSE_ETRICE_GENERATOR_FSMTEST = "org.eclipse.etrice.generator.FSMtest";
+
+ private static final Logger logger = Logger.getLogger(FSMtestActivator.class);
+
+ private static FSMtestActivator 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 FSMtestActivator 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_ETRICE_GENERATOR_FSMTEST.equals(grammar)) {
+ return new org.eclipse.etrice.generator.FSMtestRuntimeModule();
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if (ORG_ECLIPSE_ETRICE_GENERATOR_FSMTEST.equals(grammar)) {
+ return new org.eclipse.etrice.generator.ui.FSMtestUiModule(this);
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new SharedStateModule();
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/FSMtestUiModule.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/FSMtestUiModule.java
new file mode 100644
index 000000000..3fb130d8e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/FSMtestUiModule.java
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class FSMtestUiModule extends org.eclipse.etrice.generator.ui.AbstractFSMtestUiModule {
+ public FSMtestUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/contentassist/FSMtestProposalProvider.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/contentassist/FSMtestProposalProvider.java
new file mode 100644
index 000000000..d754e40a3
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/contentassist/FSMtestProposalProvider.java
@@ -0,0 +1,12 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator.ui.contentassist;
+
+import org.eclipse.etrice.generator.ui.contentassist.AbstractFSMtestProposalProvider;
+/**
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant
+ */
+public class FSMtestProposalProvider extends AbstractFSMtestProposalProvider {
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/labeling/FSMtestDescriptionLabelProvider.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/labeling/FSMtestDescriptionLabelProvider.java
new file mode 100644
index 000000000..0b52fbc78
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/labeling/FSMtestDescriptionLabelProvider.java
@@ -0,0 +1,27 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator.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 FSMtestDescriptionLabelProvider 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/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/labeling/FSMtestLabelProvider.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/labeling/FSMtestLabelProvider.java
new file mode 100644
index 000000000..ae3d128d6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/labeling/FSMtestLabelProvider.java
@@ -0,0 +1,34 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator.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 FSMtestLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ public FSMtestLabelProvider(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/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/outline/FSMtestOutlineTreeProvider.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/outline/FSMtestOutlineTreeProvider.java
new file mode 100644
index 000000000..fd74b6e5e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/outline/FSMtestOutlineTreeProvider.java
@@ -0,0 +1,14 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * customization of the default outline structure
+ *
+ */
+public class FSMtestOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/quickfix/FSMtestQuickfixProvider.java b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/quickfix/FSMtestQuickfixProvider.java
new file mode 100644
index 000000000..e65db6498
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest.ui/src/org/eclipse/etrice/generator/ui/quickfix/FSMtestQuickfixProvider.java
@@ -0,0 +1,19 @@
+
+package org.eclipse.etrice.generator.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+public class FSMtestQuickfixProvider 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/plugins/org.eclipse.etrice.generator.fsmtest/.classpath b/plugins/org.eclipse.etrice.generator.fsmtest/.classpath
new file mode 100644
index 000000000..3f1be5028
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/.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/plugins/org.eclipse.etrice.generator.fsmtest/.gitignore b/plugins/org.eclipse.etrice.generator.fsmtest/.gitignore
new file mode 100644
index 000000000..a25460a14
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/.gitignore
@@ -0,0 +1,2 @@
+bin
+.antlr-generator-3.2.0.jar \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/.launch/Generate Language Infrastructure (org.eclipse.etrice.generator.fsmtest).launch b/plugins/org.eclipse.etrice.generator.fsmtest/.launch/Generate Language Infrastructure (org.eclipse.etrice.generator.fsmtest).launch
new file mode 100644
index 000000000..4b55db59d
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/.launch/Generate Language Infrastructure (org.eclipse.etrice.generator.fsmtest).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.etrice.generator.fsmtest&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.etrice.generator.fsmtest.generator&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.etrice.generator.fsmtest.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.etrice.generator.fsmtest.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.etrice.generator.fsmtest"/>
+</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/etrice/generator/GenerateFSMtest.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.generator.fsmtest"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
+</launchConfiguration>
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/.project b/plugins/org.eclipse.etrice.generator.fsmtest/.project
new file mode 100644
index 000000000..fe7fef887
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.etrice.generator.fsmtest</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/plugins/org.eclipse.etrice.generator.fsmtest/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.generator.fsmtest/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..c0ad34063
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.etrice.generator.fsmtest
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.etrice.generator.fsmtest; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;visibility:=reexport,
+ org.eclipse.xtext.xbase;resolution:=optional;visibility:=reexport,
+ org.eclipse.xtext.generator;resolution:=optional,
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;resolution:=optional,
+ org.eclipse.xtext.util,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types
+Import-Package: org.apache.log4j,
+ org.eclipse.xtext.xbase.lib
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.etrice.generator,
+ org.eclipse.etrice.generator.services,
+ org.eclipse.etrice.generator.fsmtest,
+ org.eclipse.etrice.generator.fsmtest.impl,
+ org.eclipse.etrice.generator.fsmtest.util,
+ org.eclipse.etrice.generator.serializer,
+ org.eclipse.etrice.generator.parser.antlr,
+ org.eclipse.etrice.generator.parser.antlr.internal,
+ org.eclipse.etrice.generator.validation,
+ org.eclipse.etrice.generator.scoping,
+ org.eclipse.etrice.generator.generator,
+ org.eclipse.etrice.generator.formatting
+
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/build.properties b/plugins/org.eclipse.etrice.generator.fsmtest/build.properties
new file mode 100644
index 000000000..31255ed05
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/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/plugins/org.eclipse.etrice.generator.fsmtest/plugin.xml b/plugins/org.eclipse.etrice.generator.fsmtest/plugin.xml
new file mode 100644
index 000000000..3fc746238
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/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/etrice/generator/FSMtest"
+ class = "org.eclipse.etrice.generator.fsmtest.FsmtestPackage"
+ genModel = "org/eclipse/etrice/generator/FSMtest.genmodel" />
+
+ </extension>
+
+
+
+
+</plugin>
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/AbstractFSMtestRuntimeModule.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/AbstractFSMtestRuntimeModule.java
new file mode 100644
index 000000000..092e3ff53
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/AbstractFSMtestRuntimeModule.java
@@ -0,0 +1,172 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator;
+
+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.etrice.generator.FSMtestRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractFSMtestRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/etrice/generator/FSMtest.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.etrice.generator.FSMtest");
+ }
+
+ 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("fsmtest");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.etrice.generator.services.FSMtestGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+ return org.eclipse.etrice.generator.serializer.FSMtestSemanticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+ return org.eclipse.etrice.generator.serializer.FSMtestSyntacticSequencer.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.etrice.generator.parser.antlr.FSMtestParser.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.etrice.generator.parser.antlr.FSMtestAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.etrice.generator.parser.antlr.internal.InternalFSMtestLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.etrice.generator.parser.antlr.internal.InternalFSMtestLexer> provideInternalFSMtestLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.etrice.generator.parser.antlr.internal.InternalFSMtestLexer.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.etrice.generator.parser.antlr.internal.InternalFSMtestLexer.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.etrice.generator.validation.FSMtestJavaValidator> bindFSMtestJavaValidator() {
+ return org.eclipse.etrice.generator.validation.FSMtestJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+ return org.eclipse.etrice.generator.scoping.FSMtestScopeProvider.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.etrice.generator.generator.FSMtestGenerator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.etrice.generator.formatting.FSMtestFormatter.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/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.ecore b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.ecore
new file mode 100644
index 000000000..283523bca
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.ecore
@@ -0,0 +1,60 @@
+<?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="fsmtest" nsURI="http://www.eclipse.org/etrice/generator/FSMtest"
+ nsPrefix="fsmtest">
+ <eClassifiers xsi:type="ecore:EClass" name="Model">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="Testscripts" upperBound="-1"
+ eType="#//Testscript" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Testscript">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stateDeclaration" eType="#//StateDeclaration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initialDeclaration" eType="#//InitialDeclaration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="loopsDeclaration" eType="#//LoopsDeclaration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="seedDeclaration" eType="#//SeedDeclaration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDeclarations"
+ upperBound="-1" eType="#//TransitionDeclaration" containment="true"/>
+ </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"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StateDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
+ eType="#//State" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InitialDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initial" eType="#//State"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LoopsDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="val" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SeedDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="val" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SignalDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="signame" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="intVal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="strVal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SourceDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//State"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DestinationDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//State"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransitionDeclaration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//SourceDeclaration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="in" upperBound="-1" eType="#//SignalDeclaration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="out" upperBound="-1" eType="#//SignalDeclaration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="destination" eType="#//DestinationDeclaration"
+ containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.genmodel b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.genmodel
new file mode 100644
index 000000000..b2aae68cb
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.genmodel
@@ -0,0 +1,56 @@
+<?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.etrice.generator.fsmtest/src-gen"
+ editDirectory="/org.eclipse.etrice.generator.fsmtest.edit/src" editorDirectory="/org.eclipse.etrice.generator.fsmtest.editor/src"
+ modelPluginID="org.eclipse.etrice.generator.fsmtest" forceOverwrite="true" modelName="FSMtest"
+ updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.etrice.generator.fsmtest.edit"
+ editorPluginID="org.eclipse.etrice.generator.fsmtest.editor" runtimeVersion="2.8">
+ <genPackages prefix="Fsmtest" basePackage="org.eclipse.etrice.generator" disposableProviderFactory="true"
+ ecorePackage="FSMtest.ecore#/">
+ <genClasses ecoreClass="FSMtest.ecore#//Model">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//Model/Testscripts"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//Testscript">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FSMtest.ecore#//Testscript/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//Testscript/stateDeclaration"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//Testscript/initialDeclaration"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//Testscript/loopsDeclaration"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//Testscript/seedDeclaration"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//Testscript/transitionDeclarations"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//State">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FSMtest.ecore#//State/name"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//StateDeclaration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//StateDeclaration/states"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//InitialDeclaration">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FSMtest.ecore#//InitialDeclaration/initial"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//LoopsDeclaration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FSMtest.ecore#//LoopsDeclaration/val"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//SeedDeclaration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FSMtest.ecore#//SeedDeclaration/val"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//SignalDeclaration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FSMtest.ecore#//SignalDeclaration/port"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FSMtest.ecore#//SignalDeclaration/signame"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FSMtest.ecore#//SignalDeclaration/intVal"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FSMtest.ecore#//SignalDeclaration/strVal"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//SourceDeclaration">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FSMtest.ecore#//SourceDeclaration/ref"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//DestinationDeclaration">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FSMtest.ecore#//DestinationDeclaration/ref"/>
+ </genClasses>
+ <genClasses ecoreClass="FSMtest.ecore#//TransitionDeclaration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//TransitionDeclaration/source"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//TransitionDeclaration/in"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//TransitionDeclaration/out"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FSMtest.ecore#//TransitionDeclaration/destination"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.xmi b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.xmi
new file mode 100644
index 000000000..901b83b92
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtest.xmi
@@ -0,0 +1,342 @@
+<?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.etrice.generator.FSMtest" usedGrammars="/1">
+ <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="fsmtest">
+ <ePackage href="http://www.eclipse.org/etrice/generator/FSMtest#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="Model">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//Model"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" cardinality="*" feature="Testscripts" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Testscript">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//Testscript"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="fsmtest"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="stateDeclaration" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="initialDeclaration" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="loopsDeclaration" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="seedDeclaration" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="transitionDeclarations" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="State">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//State"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="StateDeclaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//StateDeclaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="states:"/>
+ <elements xsi:type="xtext:Assignment" feature="states" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="states" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="InitialDeclaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//InitialDeclaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="initial:"/>
+ <elements xsi:type="xtext:Assignment" feature="initial" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//State"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="LoopsDeclaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//LoopsDeclaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="loops:"/>
+ <elements xsi:type="xtext:Assignment" feature="val" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SeedDeclaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//SeedDeclaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="randseed:"/>
+ <elements xsi:type="xtext:Assignment" feature="val" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SignalDeclaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//SignalDeclaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" feature="port" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="."/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="signame" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="?">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="="/>
+ <elements xsi:type="xtext:Assignment" feature="intVal" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="="/>
+ <elements xsi:type="xtext:Assignment" feature="strVal" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </elements>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SourceDeclaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//SourceDeclaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="ref" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//State"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="DestinationDeclaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//DestinationDeclaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="-> "/>
+ <elements xsi:type="xtext:Assignment" feature="ref" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//State"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="TransitionDeclaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/generator/FSMtest#//TransitionDeclaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="source" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="in:"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="in" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="out:"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="out" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="destination" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+ </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/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtestStandaloneSetupGenerated.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtestStandaloneSetupGenerated.java
new file mode 100644
index 000000000..02f9d48b2
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/FSMtestStandaloneSetupGenerated.java
@@ -0,0 +1,43 @@
+
+package org.eclipse.etrice.generator;
+
+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 FSMtestStandaloneSetupGenerated 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.etrice.generator.FSMtestRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/etrice/generator/FSMtest")) {
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/etrice/generator/FSMtest", org.eclipse.etrice.generator.fsmtest.FsmtestPackage.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("fsmtest", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("fsmtest", serviceProvider);
+
+
+
+
+ }
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/DestinationDeclaration.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/DestinationDeclaration.java
new file mode 100644
index 000000000..bda8e2777
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/DestinationDeclaration.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Destination Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.DestinationDeclaration#getRef <em>Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getDestinationDeclaration()
+ * @model
+ * @generated
+ */
+public interface DestinationDeclaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ref</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ref</em>' reference.
+ * @see #setRef(State)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getDestinationDeclaration_Ref()
+ * @model
+ * @generated
+ */
+ State getRef();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.DestinationDeclaration#getRef <em>Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ref</em>' reference.
+ * @see #getRef()
+ * @generated
+ */
+ void setRef(State value);
+
+} // DestinationDeclaration
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/FsmtestFactory.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/FsmtestFactory.java
new file mode 100644
index 000000000..eb34178be
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/FsmtestFactory.java
@@ -0,0 +1,133 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+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.etrice.generator.fsmtest.FsmtestPackage
+ * @generated
+ */
+public interface FsmtestFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FsmtestFactory eINSTANCE = org.eclipse.etrice.generator.fsmtest.impl.FsmtestFactoryImpl.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>Testscript</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Testscript</em>'.
+ * @generated
+ */
+ Testscript createTestscript();
+
+ /**
+ * 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>State Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>State Declaration</em>'.
+ * @generated
+ */
+ StateDeclaration createStateDeclaration();
+
+ /**
+ * Returns a new object of class '<em>Initial Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Initial Declaration</em>'.
+ * @generated
+ */
+ InitialDeclaration createInitialDeclaration();
+
+ /**
+ * Returns a new object of class '<em>Loops Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Loops Declaration</em>'.
+ * @generated
+ */
+ LoopsDeclaration createLoopsDeclaration();
+
+ /**
+ * Returns a new object of class '<em>Seed Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Seed Declaration</em>'.
+ * @generated
+ */
+ SeedDeclaration createSeedDeclaration();
+
+ /**
+ * Returns a new object of class '<em>Signal Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Signal Declaration</em>'.
+ * @generated
+ */
+ SignalDeclaration createSignalDeclaration();
+
+ /**
+ * Returns a new object of class '<em>Source Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Source Declaration</em>'.
+ * @generated
+ */
+ SourceDeclaration createSourceDeclaration();
+
+ /**
+ * Returns a new object of class '<em>Destination Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Destination Declaration</em>'.
+ * @generated
+ */
+ DestinationDeclaration createDestinationDeclaration();
+
+ /**
+ * Returns a new object of class '<em>Transition Declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transition Declaration</em>'.
+ * @generated
+ */
+ TransitionDeclaration createTransitionDeclaration();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ FsmtestPackage getFsmtestPackage();
+
+} //FsmtestFactory
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/FsmtestPackage.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/FsmtestPackage.java
new file mode 100644
index 000000000..5622320a8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/FsmtestPackage.java
@@ -0,0 +1,1130 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+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.etrice.generator.fsmtest.FsmtestFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface FsmtestPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "fsmtest";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/etrice/generator/FSMtest";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "fsmtest";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FsmtestPackage eINSTANCE = org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.ModelImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getModel()
+ * @generated
+ */
+ int MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Testscripts</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__TESTSCRIPTS = 0;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl <em>Testscript</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getTestscript()
+ * @generated
+ */
+ int TESTSCRIPT = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTSCRIPT__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>State Declaration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTSCRIPT__STATE_DECLARATION = 1;
+
+ /**
+ * The feature id for the '<em><b>Initial Declaration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTSCRIPT__INITIAL_DECLARATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Loops Declaration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTSCRIPT__LOOPS_DECLARATION = 3;
+
+ /**
+ * The feature id for the '<em><b>Seed Declaration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTSCRIPT__SEED_DECLARATION = 4;
+
+ /**
+ * The feature id for the '<em><b>Transition Declarations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTSCRIPT__TRANSITION_DECLARATIONS = 5;
+
+ /**
+ * The number of structural features of the '<em>Testscript</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TESTSCRIPT_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.StateImpl <em>State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.StateImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getState()
+ * @generated
+ */
+ int STATE = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.StateDeclarationImpl <em>State Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.StateDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getStateDeclaration()
+ * @generated
+ */
+ int STATE_DECLARATION = 3;
+
+ /**
+ * The feature id for the '<em><b>States</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_DECLARATION__STATES = 0;
+
+ /**
+ * The number of structural features of the '<em>State Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_DECLARATION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.InitialDeclarationImpl <em>Initial Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.InitialDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getInitialDeclaration()
+ * @generated
+ */
+ int INITIAL_DECLARATION = 4;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIAL_DECLARATION__INITIAL = 0;
+
+ /**
+ * The number of structural features of the '<em>Initial Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIAL_DECLARATION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.LoopsDeclarationImpl <em>Loops Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.LoopsDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getLoopsDeclaration()
+ * @generated
+ */
+ int LOOPS_DECLARATION = 5;
+
+ /**
+ * The feature id for the '<em><b>Val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOOPS_DECLARATION__VAL = 0;
+
+ /**
+ * The number of structural features of the '<em>Loops Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOOPS_DECLARATION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.SeedDeclarationImpl <em>Seed Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.SeedDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getSeedDeclaration()
+ * @generated
+ */
+ int SEED_DECLARATION = 6;
+
+ /**
+ * The feature id for the '<em><b>Val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEED_DECLARATION__VAL = 0;
+
+ /**
+ * The number of structural features of the '<em>Seed Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEED_DECLARATION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.SignalDeclarationImpl <em>Signal Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.SignalDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getSignalDeclaration()
+ * @generated
+ */
+ int SIGNAL_DECLARATION = 7;
+
+ /**
+ * The feature id for the '<em><b>Port</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGNAL_DECLARATION__PORT = 0;
+
+ /**
+ * The feature id for the '<em><b>Signame</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGNAL_DECLARATION__SIGNAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Int Val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGNAL_DECLARATION__INT_VAL = 2;
+
+ /**
+ * The feature id for the '<em><b>Str Val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGNAL_DECLARATION__STR_VAL = 3;
+
+ /**
+ * The number of structural features of the '<em>Signal Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGNAL_DECLARATION_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.SourceDeclarationImpl <em>Source Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.SourceDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getSourceDeclaration()
+ * @generated
+ */
+ int SOURCE_DECLARATION = 8;
+
+ /**
+ * The feature id for the '<em><b>Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOURCE_DECLARATION__REF = 0;
+
+ /**
+ * The number of structural features of the '<em>Source Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOURCE_DECLARATION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.DestinationDeclarationImpl <em>Destination Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.DestinationDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getDestinationDeclaration()
+ * @generated
+ */
+ int DESTINATION_DECLARATION = 9;
+
+ /**
+ * The feature id for the '<em><b>Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DESTINATION_DECLARATION__REF = 0;
+
+ /**
+ * The number of structural features of the '<em>Destination Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DESTINATION_DECLARATION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.generator.fsmtest.impl.TransitionDeclarationImpl <em>Transition Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.TransitionDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getTransitionDeclaration()
+ * @generated
+ */
+ int TRANSITION_DECLARATION = 10;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_DECLARATION__SOURCE = 0;
+
+ /**
+ * The feature id for the '<em><b>In</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_DECLARATION__IN = 1;
+
+ /**
+ * The feature id for the '<em><b>Out</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_DECLARATION__OUT = 2;
+
+ /**
+ * The feature id for the '<em><b>Destination</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_DECLARATION__DESTINATION = 3;
+
+ /**
+ * The number of structural features of the '<em>Transition Declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_DECLARATION_FEATURE_COUNT = 4;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Model
+ * @generated
+ */
+ EClass getModel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.etrice.generator.fsmtest.Model#getTestscripts <em>Testscripts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Testscripts</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Model#getTestscripts()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Testscripts();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.Testscript <em>Testscript</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Testscript</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Testscript
+ * @generated
+ */
+ EClass getTestscript();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Testscript#getName()
+ * @see #getTestscript()
+ * @generated
+ */
+ EAttribute getTestscript_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getStateDeclaration <em>State Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>State Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Testscript#getStateDeclaration()
+ * @see #getTestscript()
+ * @generated
+ */
+ EReference getTestscript_StateDeclaration();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getInitialDeclaration <em>Initial Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Initial Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Testscript#getInitialDeclaration()
+ * @see #getTestscript()
+ * @generated
+ */
+ EReference getTestscript_InitialDeclaration();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getLoopsDeclaration <em>Loops Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Loops Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Testscript#getLoopsDeclaration()
+ * @see #getTestscript()
+ * @generated
+ */
+ EReference getTestscript_LoopsDeclaration();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getSeedDeclaration <em>Seed Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Seed Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Testscript#getSeedDeclaration()
+ * @see #getTestscript()
+ * @generated
+ */
+ EReference getTestscript_SeedDeclaration();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getTransitionDeclarations <em>Transition Declarations</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Transition Declarations</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.Testscript#getTransitionDeclarations()
+ * @see #getTestscript()
+ * @generated
+ */
+ EReference getTestscript_TransitionDeclarations();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.State <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>State</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.State
+ * @generated
+ */
+ EClass getState();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.etrice.generator.fsmtest.State#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.State#getName()
+ * @see #getState()
+ * @generated
+ */
+ EAttribute getState_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.StateDeclaration <em>State Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>State Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.StateDeclaration
+ * @generated
+ */
+ EClass getStateDeclaration();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.etrice.generator.fsmtest.StateDeclaration#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.etrice.generator.fsmtest.StateDeclaration#getStates()
+ * @see #getStateDeclaration()
+ * @generated
+ */
+ EReference getStateDeclaration_States();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.InitialDeclaration <em>Initial Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Initial Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.InitialDeclaration
+ * @generated
+ */
+ EClass getInitialDeclaration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.etrice.generator.fsmtest.InitialDeclaration#getInitial <em>Initial</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Initial</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.InitialDeclaration#getInitial()
+ * @see #getInitialDeclaration()
+ * @generated
+ */
+ EReference getInitialDeclaration_Initial();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.LoopsDeclaration <em>Loops Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loops Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.LoopsDeclaration
+ * @generated
+ */
+ EClass getLoopsDeclaration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.etrice.generator.fsmtest.LoopsDeclaration#getVal <em>Val</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Val</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.LoopsDeclaration#getVal()
+ * @see #getLoopsDeclaration()
+ * @generated
+ */
+ EAttribute getLoopsDeclaration_Val();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.SeedDeclaration <em>Seed Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Seed Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SeedDeclaration
+ * @generated
+ */
+ EClass getSeedDeclaration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.etrice.generator.fsmtest.SeedDeclaration#getVal <em>Val</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Val</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SeedDeclaration#getVal()
+ * @see #getSeedDeclaration()
+ * @generated
+ */
+ EAttribute getSeedDeclaration_Val();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration <em>Signal Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Signal Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SignalDeclaration
+ * @generated
+ */
+ EClass getSignalDeclaration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getPort <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Port</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getPort()
+ * @see #getSignalDeclaration()
+ * @generated
+ */
+ EAttribute getSignalDeclaration_Port();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getSigname <em>Signame</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Signame</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getSigname()
+ * @see #getSignalDeclaration()
+ * @generated
+ */
+ EAttribute getSignalDeclaration_Signame();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getIntVal <em>Int Val</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Int Val</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getIntVal()
+ * @see #getSignalDeclaration()
+ * @generated
+ */
+ EAttribute getSignalDeclaration_IntVal();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getStrVal <em>Str Val</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Str Val</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getStrVal()
+ * @see #getSignalDeclaration()
+ * @generated
+ */
+ EAttribute getSignalDeclaration_StrVal();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.SourceDeclaration <em>Source Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Source Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SourceDeclaration
+ * @generated
+ */
+ EClass getSourceDeclaration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.etrice.generator.fsmtest.SourceDeclaration#getRef <em>Ref</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Ref</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.SourceDeclaration#getRef()
+ * @see #getSourceDeclaration()
+ * @generated
+ */
+ EReference getSourceDeclaration_Ref();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.DestinationDeclaration <em>Destination Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Destination Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.DestinationDeclaration
+ * @generated
+ */
+ EClass getDestinationDeclaration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.etrice.generator.fsmtest.DestinationDeclaration#getRef <em>Ref</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Ref</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.DestinationDeclaration#getRef()
+ * @see #getDestinationDeclaration()
+ * @generated
+ */
+ EReference getDestinationDeclaration_Ref();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration <em>Transition Declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transition Declaration</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.TransitionDeclaration
+ * @generated
+ */
+ EClass getTransitionDeclaration();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Source</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getSource()
+ * @see #getTransitionDeclaration()
+ * @generated
+ */
+ EReference getTransitionDeclaration_Source();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getIn <em>In</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>In</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getIn()
+ * @see #getTransitionDeclaration()
+ * @generated
+ */
+ EReference getTransitionDeclaration_In();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getOut <em>Out</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Out</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getOut()
+ * @see #getTransitionDeclaration()
+ * @generated
+ */
+ EReference getTransitionDeclaration_Out();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getDestination <em>Destination</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Destination</em>'.
+ * @see org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getDestination()
+ * @see #getTransitionDeclaration()
+ * @generated
+ */
+ EReference getTransitionDeclaration_Destination();
+
+ /**
+ * 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
+ */
+ FsmtestFactory getFsmtestFactory();
+
+ /**
+ * <!-- 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.etrice.generator.fsmtest.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.ModelImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getModel()
+ * @generated
+ */
+ EClass MODEL = eINSTANCE.getModel();
+
+ /**
+ * The meta object literal for the '<em><b>Testscripts</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__TESTSCRIPTS = eINSTANCE.getModel_Testscripts();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl <em>Testscript</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getTestscript()
+ * @generated
+ */
+ EClass TESTSCRIPT = eINSTANCE.getTestscript();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TESTSCRIPT__NAME = eINSTANCE.getTestscript_Name();
+
+ /**
+ * The meta object literal for the '<em><b>State Declaration</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TESTSCRIPT__STATE_DECLARATION = eINSTANCE.getTestscript_StateDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Initial Declaration</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TESTSCRIPT__INITIAL_DECLARATION = eINSTANCE.getTestscript_InitialDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Loops Declaration</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TESTSCRIPT__LOOPS_DECLARATION = eINSTANCE.getTestscript_LoopsDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Seed Declaration</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TESTSCRIPT__SEED_DECLARATION = eINSTANCE.getTestscript_SeedDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Transition Declarations</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TESTSCRIPT__TRANSITION_DECLARATIONS = eINSTANCE.getTestscript_TransitionDeclarations();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.StateImpl <em>State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.StateImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#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 '{@link org.eclipse.etrice.generator.fsmtest.impl.StateDeclarationImpl <em>State Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.StateDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getStateDeclaration()
+ * @generated
+ */
+ EClass STATE_DECLARATION = eINSTANCE.getStateDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>States</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATE_DECLARATION__STATES = eINSTANCE.getStateDeclaration_States();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.InitialDeclarationImpl <em>Initial Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.InitialDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getInitialDeclaration()
+ * @generated
+ */
+ EClass INITIAL_DECLARATION = eINSTANCE.getInitialDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Initial</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INITIAL_DECLARATION__INITIAL = eINSTANCE.getInitialDeclaration_Initial();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.LoopsDeclarationImpl <em>Loops Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.LoopsDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getLoopsDeclaration()
+ * @generated
+ */
+ EClass LOOPS_DECLARATION = eINSTANCE.getLoopsDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Val</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOOPS_DECLARATION__VAL = eINSTANCE.getLoopsDeclaration_Val();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.SeedDeclarationImpl <em>Seed Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.SeedDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getSeedDeclaration()
+ * @generated
+ */
+ EClass SEED_DECLARATION = eINSTANCE.getSeedDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Val</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEED_DECLARATION__VAL = eINSTANCE.getSeedDeclaration_Val();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.SignalDeclarationImpl <em>Signal Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.SignalDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getSignalDeclaration()
+ * @generated
+ */
+ EClass SIGNAL_DECLARATION = eINSTANCE.getSignalDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Port</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIGNAL_DECLARATION__PORT = eINSTANCE.getSignalDeclaration_Port();
+
+ /**
+ * The meta object literal for the '<em><b>Signame</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIGNAL_DECLARATION__SIGNAME = eINSTANCE.getSignalDeclaration_Signame();
+
+ /**
+ * The meta object literal for the '<em><b>Int Val</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIGNAL_DECLARATION__INT_VAL = eINSTANCE.getSignalDeclaration_IntVal();
+
+ /**
+ * The meta object literal for the '<em><b>Str Val</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIGNAL_DECLARATION__STR_VAL = eINSTANCE.getSignalDeclaration_StrVal();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.SourceDeclarationImpl <em>Source Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.SourceDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getSourceDeclaration()
+ * @generated
+ */
+ EClass SOURCE_DECLARATION = eINSTANCE.getSourceDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SOURCE_DECLARATION__REF = eINSTANCE.getSourceDeclaration_Ref();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.DestinationDeclarationImpl <em>Destination Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.DestinationDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getDestinationDeclaration()
+ * @generated
+ */
+ EClass DESTINATION_DECLARATION = eINSTANCE.getDestinationDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DESTINATION_DECLARATION__REF = eINSTANCE.getDestinationDeclaration_Ref();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.generator.fsmtest.impl.TransitionDeclarationImpl <em>Transition Declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.generator.fsmtest.impl.TransitionDeclarationImpl
+ * @see org.eclipse.etrice.generator.fsmtest.impl.FsmtestPackageImpl#getTransitionDeclaration()
+ * @generated
+ */
+ EClass TRANSITION_DECLARATION = eINSTANCE.getTransitionDeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION_DECLARATION__SOURCE = eINSTANCE.getTransitionDeclaration_Source();
+
+ /**
+ * The meta object literal for the '<em><b>In</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION_DECLARATION__IN = eINSTANCE.getTransitionDeclaration_In();
+
+ /**
+ * The meta object literal for the '<em><b>Out</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION_DECLARATION__OUT = eINSTANCE.getTransitionDeclaration_Out();
+
+ /**
+ * The meta object literal for the '<em><b>Destination</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION_DECLARATION__DESTINATION = eINSTANCE.getTransitionDeclaration_Destination();
+
+ }
+
+} //FsmtestPackage
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/InitialDeclaration.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/InitialDeclaration.java
new file mode 100644
index 000000000..8e6588daa
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/InitialDeclaration.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Initial Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.InitialDeclaration#getInitial <em>Initial</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getInitialDeclaration()
+ * @model
+ * @generated
+ */
+public interface InitialDeclaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Initial</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initial</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Initial</em>' reference.
+ * @see #setInitial(State)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getInitialDeclaration_Initial()
+ * @model
+ * @generated
+ */
+ State getInitial();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.InitialDeclaration#getInitial <em>Initial</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initial</em>' reference.
+ * @see #getInitial()
+ * @generated
+ */
+ void setInitial(State value);
+
+} // InitialDeclaration
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/LoopsDeclaration.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/LoopsDeclaration.java
new file mode 100644
index 000000000..b123c9480
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/LoopsDeclaration.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loops Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.LoopsDeclaration#getVal <em>Val</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getLoopsDeclaration()
+ * @model
+ * @generated
+ */
+public interface LoopsDeclaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Val</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Val</em>' attribute.
+ * @see #setVal(int)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getLoopsDeclaration_Val()
+ * @model
+ * @generated
+ */
+ int getVal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.LoopsDeclaration#getVal <em>Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Val</em>' attribute.
+ * @see #getVal()
+ * @generated
+ */
+ void setVal(int value);
+
+} // LoopsDeclaration
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/Model.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/Model.java
new file mode 100644
index 000000000..a69b334ca
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/Model.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+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.etrice.generator.fsmtest.Model#getTestscripts <em>Testscripts</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Testscripts</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.etrice.generator.fsmtest.Testscript}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Testscripts</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>Testscripts</em>' containment reference list.
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getModel_Testscripts()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Testscript> getTestscripts();
+
+} // Model
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SeedDeclaration.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SeedDeclaration.java
new file mode 100644
index 000000000..a51bcac5e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SeedDeclaration.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Seed Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.SeedDeclaration#getVal <em>Val</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSeedDeclaration()
+ * @model
+ * @generated
+ */
+public interface SeedDeclaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Val</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Val</em>' attribute.
+ * @see #setVal(int)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSeedDeclaration_Val()
+ * @model
+ * @generated
+ */
+ int getVal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.SeedDeclaration#getVal <em>Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Val</em>' attribute.
+ * @see #getVal()
+ * @generated
+ */
+ void setVal(int value);
+
+} // SeedDeclaration
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SignalDeclaration.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SignalDeclaration.java
new file mode 100644
index 000000000..0943c8901
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SignalDeclaration.java
@@ -0,0 +1,132 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Signal Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getPort <em>Port</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getSigname <em>Signame</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getIntVal <em>Int Val</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getStrVal <em>Str Val</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSignalDeclaration()
+ * @model
+ * @generated
+ */
+public interface SignalDeclaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Port</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Port</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Port</em>' attribute.
+ * @see #setPort(String)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSignalDeclaration_Port()
+ * @model
+ * @generated
+ */
+ String getPort();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getPort <em>Port</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Port</em>' attribute.
+ * @see #getPort()
+ * @generated
+ */
+ void setPort(String value);
+
+ /**
+ * Returns the value of the '<em><b>Signame</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Signame</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Signame</em>' attribute.
+ * @see #setSigname(String)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSignalDeclaration_Signame()
+ * @model
+ * @generated
+ */
+ String getSigname();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getSigname <em>Signame</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Signame</em>' attribute.
+ * @see #getSigname()
+ * @generated
+ */
+ void setSigname(String value);
+
+ /**
+ * Returns the value of the '<em><b>Int Val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Int Val</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Int Val</em>' attribute.
+ * @see #setIntVal(int)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSignalDeclaration_IntVal()
+ * @model
+ * @generated
+ */
+ int getIntVal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getIntVal <em>Int Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Int Val</em>' attribute.
+ * @see #getIntVal()
+ * @generated
+ */
+ void setIntVal(int value);
+
+ /**
+ * Returns the value of the '<em><b>Str Val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Str Val</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Str Val</em>' attribute.
+ * @see #setStrVal(String)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSignalDeclaration_StrVal()
+ * @model
+ * @generated
+ */
+ String getStrVal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration#getStrVal <em>Str Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Str Val</em>' attribute.
+ * @see #getStrVal()
+ * @generated
+ */
+ void setStrVal(String value);
+
+} // SignalDeclaration
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SourceDeclaration.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SourceDeclaration.java
new file mode 100644
index 000000000..51d9c2450
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/SourceDeclaration.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Source Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.SourceDeclaration#getRef <em>Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSourceDeclaration()
+ * @model
+ * @generated
+ */
+public interface SourceDeclaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ref</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ref</em>' reference.
+ * @see #setRef(State)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getSourceDeclaration_Ref()
+ * @model
+ * @generated
+ */
+ State getRef();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.SourceDeclaration#getRef <em>Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ref</em>' reference.
+ * @see #getRef()
+ * @generated
+ */
+ void setRef(State value);
+
+} // SourceDeclaration
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/State.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/State.java
new file mode 100644
index 000000000..328a4f584
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/State.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+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.etrice.generator.fsmtest.State#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#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.etrice.generator.fsmtest.FsmtestPackage#getState_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.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);
+
+} // State
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/StateDeclaration.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/StateDeclaration.java
new file mode 100644
index 000000000..747301d3b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/StateDeclaration.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+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 Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.StateDeclaration#getStates <em>States</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getStateDeclaration()
+ * @model
+ * @generated
+ */
+public interface StateDeclaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>States</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.etrice.generator.fsmtest.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.etrice.generator.fsmtest.FsmtestPackage#getStateDeclaration_States()
+ * @model containment="true"
+ * @generated
+ */
+ EList<State> getStates();
+
+} // StateDeclaration
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/Testscript.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/Testscript.java
new file mode 100644
index 000000000..1d2ca567d
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/Testscript.java
@@ -0,0 +1,178 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Testscript</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.Testscript#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.Testscript#getStateDeclaration <em>State Declaration</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.Testscript#getInitialDeclaration <em>Initial Declaration</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.Testscript#getLoopsDeclaration <em>Loops Declaration</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.Testscript#getSeedDeclaration <em>Seed Declaration</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.Testscript#getTransitionDeclarations <em>Transition Declarations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTestscript()
+ * @model
+ * @generated
+ */
+public interface Testscript 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.etrice.generator.fsmtest.FsmtestPackage#getTestscript_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.Testscript#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>State Declaration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>State Declaration</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>State Declaration</em>' containment reference.
+ * @see #setStateDeclaration(StateDeclaration)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTestscript_StateDeclaration()
+ * @model containment="true"
+ * @generated
+ */
+ StateDeclaration getStateDeclaration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getStateDeclaration <em>State Declaration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>State Declaration</em>' containment reference.
+ * @see #getStateDeclaration()
+ * @generated
+ */
+ void setStateDeclaration(StateDeclaration value);
+
+ /**
+ * Returns the value of the '<em><b>Initial Declaration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initial Declaration</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>Initial Declaration</em>' containment reference.
+ * @see #setInitialDeclaration(InitialDeclaration)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTestscript_InitialDeclaration()
+ * @model containment="true"
+ * @generated
+ */
+ InitialDeclaration getInitialDeclaration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getInitialDeclaration <em>Initial Declaration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initial Declaration</em>' containment reference.
+ * @see #getInitialDeclaration()
+ * @generated
+ */
+ void setInitialDeclaration(InitialDeclaration value);
+
+ /**
+ * Returns the value of the '<em><b>Loops Declaration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Loops Declaration</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>Loops Declaration</em>' containment reference.
+ * @see #setLoopsDeclaration(LoopsDeclaration)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTestscript_LoopsDeclaration()
+ * @model containment="true"
+ * @generated
+ */
+ LoopsDeclaration getLoopsDeclaration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getLoopsDeclaration <em>Loops Declaration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Loops Declaration</em>' containment reference.
+ * @see #getLoopsDeclaration()
+ * @generated
+ */
+ void setLoopsDeclaration(LoopsDeclaration value);
+
+ /**
+ * Returns the value of the '<em><b>Seed Declaration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Seed Declaration</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>Seed Declaration</em>' containment reference.
+ * @see #setSeedDeclaration(SeedDeclaration)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTestscript_SeedDeclaration()
+ * @model containment="true"
+ * @generated
+ */
+ SeedDeclaration getSeedDeclaration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.Testscript#getSeedDeclaration <em>Seed Declaration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Seed Declaration</em>' containment reference.
+ * @see #getSeedDeclaration()
+ * @generated
+ */
+ void setSeedDeclaration(SeedDeclaration value);
+
+ /**
+ * Returns the value of the '<em><b>Transition Declarations</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transition Declarations</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>Transition Declarations</em>' containment reference list.
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTestscript_TransitionDeclarations()
+ * @model containment="true"
+ * @generated
+ */
+ EList<TransitionDeclaration> getTransitionDeclarations();
+
+} // Testscript
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/TransitionDeclaration.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/TransitionDeclaration.java
new file mode 100644
index 000000000..643de4fe7
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/TransitionDeclaration.java
@@ -0,0 +1,114 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transition Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getIn <em>In</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getOut <em>Out</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getDestination <em>Destination</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTransitionDeclaration()
+ * @model
+ * @generated
+ */
+public interface TransitionDeclaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</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>Source</em>' containment reference.
+ * @see #setSource(SourceDeclaration)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTransitionDeclaration_Source()
+ * @model containment="true"
+ * @generated
+ */
+ SourceDeclaration getSource();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getSource <em>Source</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' containment reference.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(SourceDeclaration value);
+
+ /**
+ * Returns the value of the '<em><b>In</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>In</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>In</em>' containment reference list.
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTransitionDeclaration_In()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SignalDeclaration> getIn();
+
+ /**
+ * Returns the value of the '<em><b>Out</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Out</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>Out</em>' containment reference list.
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTransitionDeclaration_Out()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SignalDeclaration> getOut();
+
+ /**
+ * Returns the value of the '<em><b>Destination</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Destination</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>Destination</em>' containment reference.
+ * @see #setDestination(DestinationDeclaration)
+ * @see org.eclipse.etrice.generator.fsmtest.FsmtestPackage#getTransitionDeclaration_Destination()
+ * @model containment="true"
+ * @generated
+ */
+ DestinationDeclaration getDestination();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration#getDestination <em>Destination</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Destination</em>' containment reference.
+ * @see #getDestination()
+ * @generated
+ */
+ void setDestination(DestinationDeclaration value);
+
+} // TransitionDeclaration
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/DestinationDeclarationImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/DestinationDeclarationImpl.java
new file mode 100644
index 000000000..b0cf449f6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/DestinationDeclarationImpl.java
@@ -0,0 +1,173 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.etrice.generator.fsmtest.DestinationDeclaration;
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.State;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Destination Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.DestinationDeclarationImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DestinationDeclarationImpl extends MinimalEObjectImpl.Container implements DestinationDeclaration
+{
+ /**
+ * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRef()
+ * @generated
+ * @ordered
+ */
+ protected State ref;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DestinationDeclarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.DESTINATION_DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getRef()
+ {
+ if (ref != null && ref.eIsProxy())
+ {
+ InternalEObject oldRef = (InternalEObject)ref;
+ ref = (State)eResolveProxy(oldRef);
+ if (ref != oldRef)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FsmtestPackage.DESTINATION_DECLARATION__REF, oldRef, ref));
+ }
+ }
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State basicGetRef()
+ {
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRef(State newRef)
+ {
+ State oldRef = ref;
+ ref = newRef;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.DESTINATION_DECLARATION__REF, oldRef, ref));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.DESTINATION_DECLARATION__REF:
+ if (resolve) return getRef();
+ return basicGetRef();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.DESTINATION_DECLARATION__REF:
+ setRef((State)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.DESTINATION_DECLARATION__REF:
+ setRef((State)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.DESTINATION_DECLARATION__REF:
+ return ref != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DestinationDeclarationImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/FsmtestFactoryImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/FsmtestFactoryImpl.java
new file mode 100644
index 000000000..a321d9e25
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/FsmtestFactoryImpl.java
@@ -0,0 +1,226 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.etrice.generator.fsmtest.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FsmtestFactoryImpl extends EFactoryImpl implements FsmtestFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FsmtestFactory init()
+ {
+ try
+ {
+ FsmtestFactory theFsmtestFactory = (FsmtestFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/etrice/generator/FSMtest");
+ if (theFsmtestFactory != null)
+ {
+ return theFsmtestFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new FsmtestFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FsmtestFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case FsmtestPackage.MODEL: return createModel();
+ case FsmtestPackage.TESTSCRIPT: return createTestscript();
+ case FsmtestPackage.STATE: return createState();
+ case FsmtestPackage.STATE_DECLARATION: return createStateDeclaration();
+ case FsmtestPackage.INITIAL_DECLARATION: return createInitialDeclaration();
+ case FsmtestPackage.LOOPS_DECLARATION: return createLoopsDeclaration();
+ case FsmtestPackage.SEED_DECLARATION: return createSeedDeclaration();
+ case FsmtestPackage.SIGNAL_DECLARATION: return createSignalDeclaration();
+ case FsmtestPackage.SOURCE_DECLARATION: return createSourceDeclaration();
+ case FsmtestPackage.DESTINATION_DECLARATION: return createDestinationDeclaration();
+ case FsmtestPackage.TRANSITION_DECLARATION: return createTransitionDeclaration();
+ 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 Testscript createTestscript()
+ {
+ TestscriptImpl testscript = new TestscriptImpl();
+ return testscript;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State createState()
+ {
+ StateImpl state = new StateImpl();
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateDeclaration createStateDeclaration()
+ {
+ StateDeclarationImpl stateDeclaration = new StateDeclarationImpl();
+ return stateDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InitialDeclaration createInitialDeclaration()
+ {
+ InitialDeclarationImpl initialDeclaration = new InitialDeclarationImpl();
+ return initialDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LoopsDeclaration createLoopsDeclaration()
+ {
+ LoopsDeclarationImpl loopsDeclaration = new LoopsDeclarationImpl();
+ return loopsDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SeedDeclaration createSeedDeclaration()
+ {
+ SeedDeclarationImpl seedDeclaration = new SeedDeclarationImpl();
+ return seedDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SignalDeclaration createSignalDeclaration()
+ {
+ SignalDeclarationImpl signalDeclaration = new SignalDeclarationImpl();
+ return signalDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SourceDeclaration createSourceDeclaration()
+ {
+ SourceDeclarationImpl sourceDeclaration = new SourceDeclarationImpl();
+ return sourceDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DestinationDeclaration createDestinationDeclaration()
+ {
+ DestinationDeclarationImpl destinationDeclaration = new DestinationDeclarationImpl();
+ return destinationDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransitionDeclaration createTransitionDeclaration()
+ {
+ TransitionDeclarationImpl transitionDeclaration = new TransitionDeclarationImpl();
+ return transitionDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FsmtestPackage getFsmtestPackage()
+ {
+ return (FsmtestPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static FsmtestPackage getPackage()
+ {
+ return FsmtestPackage.eINSTANCE;
+ }
+
+} //FsmtestFactoryImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/FsmtestPackageImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/FsmtestPackageImpl.java
new file mode 100644
index 000000000..dfccfeeeb
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/FsmtestPackageImpl.java
@@ -0,0 +1,658 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.etrice.generator.fsmtest.DestinationDeclaration;
+import org.eclipse.etrice.generator.fsmtest.FsmtestFactory;
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.InitialDeclaration;
+import org.eclipse.etrice.generator.fsmtest.LoopsDeclaration;
+import org.eclipse.etrice.generator.fsmtest.Model;
+import org.eclipse.etrice.generator.fsmtest.SeedDeclaration;
+import org.eclipse.etrice.generator.fsmtest.SignalDeclaration;
+import org.eclipse.etrice.generator.fsmtest.SourceDeclaration;
+import org.eclipse.etrice.generator.fsmtest.State;
+import org.eclipse.etrice.generator.fsmtest.StateDeclaration;
+import org.eclipse.etrice.generator.fsmtest.Testscript;
+import org.eclipse.etrice.generator.fsmtest.TransitionDeclaration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FsmtestPackageImpl extends EPackageImpl implements FsmtestPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass testscriptEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateDeclarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass initialDeclarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loopsDeclarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass seedDeclarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass signalDeclarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sourceDeclarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass destinationDeclarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transitionDeclarationEClass = 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.etrice.generator.fsmtest.FsmtestPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private FsmtestPackageImpl()
+ {
+ super(eNS_URI, FsmtestFactory.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 FsmtestPackage#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 FsmtestPackage init()
+ {
+ if (isInited) return (FsmtestPackage)EPackage.Registry.INSTANCE.getEPackage(FsmtestPackage.eNS_URI);
+
+ // Obtain or create and register package
+ FsmtestPackageImpl theFsmtestPackage = (FsmtestPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FsmtestPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FsmtestPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theFsmtestPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theFsmtestPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theFsmtestPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(FsmtestPackage.eNS_URI, theFsmtestPackage);
+ return theFsmtestPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModel()
+ {
+ return modelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_Testscripts()
+ {
+ return (EReference)modelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTestscript()
+ {
+ return testscriptEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTestscript_Name()
+ {
+ return (EAttribute)testscriptEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTestscript_StateDeclaration()
+ {
+ return (EReference)testscriptEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTestscript_InitialDeclaration()
+ {
+ return (EReference)testscriptEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTestscript_LoopsDeclaration()
+ {
+ return (EReference)testscriptEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTestscript_SeedDeclaration()
+ {
+ return (EReference)testscriptEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTestscript_TransitionDeclarations()
+ {
+ return (EReference)testscriptEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- 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 EClass getStateDeclaration()
+ {
+ return stateDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStateDeclaration_States()
+ {
+ return (EReference)stateDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInitialDeclaration()
+ {
+ return initialDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInitialDeclaration_Initial()
+ {
+ return (EReference)initialDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLoopsDeclaration()
+ {
+ return loopsDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLoopsDeclaration_Val()
+ {
+ return (EAttribute)loopsDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSeedDeclaration()
+ {
+ return seedDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSeedDeclaration_Val()
+ {
+ return (EAttribute)seedDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSignalDeclaration()
+ {
+ return signalDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSignalDeclaration_Port()
+ {
+ return (EAttribute)signalDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSignalDeclaration_Signame()
+ {
+ return (EAttribute)signalDeclarationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSignalDeclaration_IntVal()
+ {
+ return (EAttribute)signalDeclarationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSignalDeclaration_StrVal()
+ {
+ return (EAttribute)signalDeclarationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSourceDeclaration()
+ {
+ return sourceDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSourceDeclaration_Ref()
+ {
+ return (EReference)sourceDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDestinationDeclaration()
+ {
+ return destinationDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDestinationDeclaration_Ref()
+ {
+ return (EReference)destinationDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTransitionDeclaration()
+ {
+ return transitionDeclarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransitionDeclaration_Source()
+ {
+ return (EReference)transitionDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransitionDeclaration_In()
+ {
+ return (EReference)transitionDeclarationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransitionDeclaration_Out()
+ {
+ return (EReference)transitionDeclarationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransitionDeclaration_Destination()
+ {
+ return (EReference)transitionDeclarationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FsmtestFactory getFsmtestFactory()
+ {
+ return (FsmtestFactory)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__TESTSCRIPTS);
+
+ testscriptEClass = createEClass(TESTSCRIPT);
+ createEAttribute(testscriptEClass, TESTSCRIPT__NAME);
+ createEReference(testscriptEClass, TESTSCRIPT__STATE_DECLARATION);
+ createEReference(testscriptEClass, TESTSCRIPT__INITIAL_DECLARATION);
+ createEReference(testscriptEClass, TESTSCRIPT__LOOPS_DECLARATION);
+ createEReference(testscriptEClass, TESTSCRIPT__SEED_DECLARATION);
+ createEReference(testscriptEClass, TESTSCRIPT__TRANSITION_DECLARATIONS);
+
+ stateEClass = createEClass(STATE);
+ createEAttribute(stateEClass, STATE__NAME);
+
+ stateDeclarationEClass = createEClass(STATE_DECLARATION);
+ createEReference(stateDeclarationEClass, STATE_DECLARATION__STATES);
+
+ initialDeclarationEClass = createEClass(INITIAL_DECLARATION);
+ createEReference(initialDeclarationEClass, INITIAL_DECLARATION__INITIAL);
+
+ loopsDeclarationEClass = createEClass(LOOPS_DECLARATION);
+ createEAttribute(loopsDeclarationEClass, LOOPS_DECLARATION__VAL);
+
+ seedDeclarationEClass = createEClass(SEED_DECLARATION);
+ createEAttribute(seedDeclarationEClass, SEED_DECLARATION__VAL);
+
+ signalDeclarationEClass = createEClass(SIGNAL_DECLARATION);
+ createEAttribute(signalDeclarationEClass, SIGNAL_DECLARATION__PORT);
+ createEAttribute(signalDeclarationEClass, SIGNAL_DECLARATION__SIGNAME);
+ createEAttribute(signalDeclarationEClass, SIGNAL_DECLARATION__INT_VAL);
+ createEAttribute(signalDeclarationEClass, SIGNAL_DECLARATION__STR_VAL);
+
+ sourceDeclarationEClass = createEClass(SOURCE_DECLARATION);
+ createEReference(sourceDeclarationEClass, SOURCE_DECLARATION__REF);
+
+ destinationDeclarationEClass = createEClass(DESTINATION_DECLARATION);
+ createEReference(destinationDeclarationEClass, DESTINATION_DECLARATION__REF);
+
+ transitionDeclarationEClass = createEClass(TRANSITION_DECLARATION);
+ createEReference(transitionDeclarationEClass, TRANSITION_DECLARATION__SOURCE);
+ createEReference(transitionDeclarationEClass, TRANSITION_DECLARATION__IN);
+ createEReference(transitionDeclarationEClass, TRANSITION_DECLARATION__OUT);
+ createEReference(transitionDeclarationEClass, TRANSITION_DECLARATION__DESTINATION);
+ }
+
+ /**
+ * <!-- 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);
+ initEReference(getModel_Testscripts(), this.getTestscript(), null, "Testscripts", 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(testscriptEClass, Testscript.class, "Testscript", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTestscript_Name(), ecorePackage.getEString(), "name", null, 0, 1, Testscript.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTestscript_StateDeclaration(), this.getStateDeclaration(), null, "stateDeclaration", null, 0, 1, Testscript.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTestscript_InitialDeclaration(), this.getInitialDeclaration(), null, "initialDeclaration", null, 0, 1, Testscript.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTestscript_LoopsDeclaration(), this.getLoopsDeclaration(), null, "loopsDeclaration", null, 0, 1, Testscript.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTestscript_SeedDeclaration(), this.getSeedDeclaration(), null, "seedDeclaration", null, 0, 1, Testscript.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTestscript_TransitionDeclarations(), this.getTransitionDeclaration(), null, "transitionDeclarations", null, 0, -1, Testscript.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, 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);
+
+ initEClass(stateDeclarationEClass, StateDeclaration.class, "StateDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStateDeclaration_States(), this.getState(), null, "states", null, 0, -1, StateDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(initialDeclarationEClass, InitialDeclaration.class, "InitialDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInitialDeclaration_Initial(), this.getState(), null, "initial", null, 0, 1, InitialDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(loopsDeclarationEClass, LoopsDeclaration.class, "LoopsDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLoopsDeclaration_Val(), ecorePackage.getEInt(), "val", null, 0, 1, LoopsDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(seedDeclarationEClass, SeedDeclaration.class, "SeedDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSeedDeclaration_Val(), ecorePackage.getEInt(), "val", null, 0, 1, SeedDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(signalDeclarationEClass, SignalDeclaration.class, "SignalDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSignalDeclaration_Port(), ecorePackage.getEString(), "port", null, 0, 1, SignalDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSignalDeclaration_Signame(), ecorePackage.getEString(), "signame", null, 0, 1, SignalDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSignalDeclaration_IntVal(), ecorePackage.getEInt(), "intVal", null, 0, 1, SignalDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSignalDeclaration_StrVal(), ecorePackage.getEString(), "strVal", null, 0, 1, SignalDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sourceDeclarationEClass, SourceDeclaration.class, "SourceDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSourceDeclaration_Ref(), this.getState(), null, "ref", null, 0, 1, SourceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(destinationDeclarationEClass, DestinationDeclaration.class, "DestinationDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDestinationDeclaration_Ref(), this.getState(), null, "ref", null, 0, 1, DestinationDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(transitionDeclarationEClass, TransitionDeclaration.class, "TransitionDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTransitionDeclaration_Source(), this.getSourceDeclaration(), null, "source", null, 0, 1, TransitionDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTransitionDeclaration_In(), this.getSignalDeclaration(), null, "in", null, 0, -1, TransitionDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTransitionDeclaration_Out(), this.getSignalDeclaration(), null, "out", null, 0, -1, TransitionDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTransitionDeclaration_Destination(), this.getDestinationDeclaration(), null, "destination", null, 0, 1, TransitionDeclaration.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);
+ }
+
+} //FsmtestPackageImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/InitialDeclarationImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/InitialDeclarationImpl.java
new file mode 100644
index 000000000..5a742439e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/InitialDeclarationImpl.java
@@ -0,0 +1,173 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.InitialDeclaration;
+import org.eclipse.etrice.generator.fsmtest.State;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Initial Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.InitialDeclarationImpl#getInitial <em>Initial</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InitialDeclarationImpl extends MinimalEObjectImpl.Container implements InitialDeclaration
+{
+ /**
+ * The cached value of the '{@link #getInitial() <em>Initial</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitial()
+ * @generated
+ * @ordered
+ */
+ protected State initial;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InitialDeclarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.INITIAL_DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getInitial()
+ {
+ if (initial != null && initial.eIsProxy())
+ {
+ InternalEObject oldInitial = (InternalEObject)initial;
+ initial = (State)eResolveProxy(oldInitial);
+ if (initial != oldInitial)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FsmtestPackage.INITIAL_DECLARATION__INITIAL, oldInitial, initial));
+ }
+ }
+ return initial;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State basicGetInitial()
+ {
+ return initial;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitial(State newInitial)
+ {
+ State oldInitial = initial;
+ initial = newInitial;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.INITIAL_DECLARATION__INITIAL, oldInitial, initial));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.INITIAL_DECLARATION__INITIAL:
+ if (resolve) return getInitial();
+ return basicGetInitial();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.INITIAL_DECLARATION__INITIAL:
+ setInitial((State)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.INITIAL_DECLARATION__INITIAL:
+ setInitial((State)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.INITIAL_DECLARATION__INITIAL:
+ return initial != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InitialDeclarationImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/LoopsDeclarationImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/LoopsDeclarationImpl.java
new file mode 100644
index 000000000..73079bff8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/LoopsDeclarationImpl.java
@@ -0,0 +1,177 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.MinimalEObjectImpl;
+
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.LoopsDeclaration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loops Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.LoopsDeclarationImpl#getVal <em>Val</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LoopsDeclarationImpl extends MinimalEObjectImpl.Container implements LoopsDeclaration
+{
+ /**
+ * The default value of the '{@link #getVal() <em>Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVal()
+ * @generated
+ * @ordered
+ */
+ protected static final int VAL_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getVal() <em>Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVal()
+ * @generated
+ * @ordered
+ */
+ protected int val = VAL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LoopsDeclarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.LOOPS_DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getVal()
+ {
+ return val;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVal(int newVal)
+ {
+ int oldVal = val;
+ val = newVal;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.LOOPS_DECLARATION__VAL, oldVal, val));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.LOOPS_DECLARATION__VAL:
+ return getVal();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.LOOPS_DECLARATION__VAL:
+ setVal((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.LOOPS_DECLARATION__VAL:
+ setVal(VAL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.LOOPS_DECLARATION__VAL:
+ return val != VAL_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(" (val: ");
+ result.append(val);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LoopsDeclarationImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/ModelImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/ModelImpl.java
new file mode 100644
index 000000000..d5bb1cc70
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/ModelImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.Model;
+import org.eclipse.etrice.generator.fsmtest.Testscript;
+
+/**
+ * <!-- 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.etrice.generator.fsmtest.impl.ModelImpl#getTestscripts <em>Testscripts</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelImpl extends MinimalEObjectImpl.Container implements Model
+{
+ /**
+ * The cached value of the '{@link #getTestscripts() <em>Testscripts</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTestscripts()
+ * @generated
+ * @ordered
+ */
+ protected EList<Testscript> testscripts;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Testscript> getTestscripts()
+ {
+ if (testscripts == null)
+ {
+ testscripts = new EObjectContainmentEList<Testscript>(Testscript.class, this, FsmtestPackage.MODEL__TESTSCRIPTS);
+ }
+ return testscripts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.MODEL__TESTSCRIPTS:
+ return ((InternalEList<?>)getTestscripts()).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 FsmtestPackage.MODEL__TESTSCRIPTS:
+ return getTestscripts();
+ }
+ 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 FsmtestPackage.MODEL__TESTSCRIPTS:
+ getTestscripts().clear();
+ getTestscripts().addAll((Collection<? extends Testscript>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.MODEL__TESTSCRIPTS:
+ getTestscripts().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.MODEL__TESTSCRIPTS:
+ return testscripts != null && !testscripts.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ModelImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SeedDeclarationImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SeedDeclarationImpl.java
new file mode 100644
index 000000000..a2998cbc5
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SeedDeclarationImpl.java
@@ -0,0 +1,177 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.MinimalEObjectImpl;
+
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.SeedDeclaration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Seed Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.SeedDeclarationImpl#getVal <em>Val</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SeedDeclarationImpl extends MinimalEObjectImpl.Container implements SeedDeclaration
+{
+ /**
+ * The default value of the '{@link #getVal() <em>Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVal()
+ * @generated
+ * @ordered
+ */
+ protected static final int VAL_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getVal() <em>Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVal()
+ * @generated
+ * @ordered
+ */
+ protected int val = VAL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SeedDeclarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.SEED_DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getVal()
+ {
+ return val;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVal(int newVal)
+ {
+ int oldVal = val;
+ val = newVal;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.SEED_DECLARATION__VAL, oldVal, val));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SEED_DECLARATION__VAL:
+ return getVal();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SEED_DECLARATION__VAL:
+ setVal((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SEED_DECLARATION__VAL:
+ setVal(VAL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SEED_DECLARATION__VAL:
+ return val != VAL_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(" (val: ");
+ result.append(val);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SeedDeclarationImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SignalDeclarationImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SignalDeclarationImpl.java
new file mode 100644
index 000000000..1ed54dc7d
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SignalDeclarationImpl.java
@@ -0,0 +1,345 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.MinimalEObjectImpl;
+
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.SignalDeclaration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Signal Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.SignalDeclarationImpl#getPort <em>Port</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.SignalDeclarationImpl#getSigname <em>Signame</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.SignalDeclarationImpl#getIntVal <em>Int Val</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.SignalDeclarationImpl#getStrVal <em>Str Val</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SignalDeclarationImpl extends MinimalEObjectImpl.Container implements SignalDeclaration
+{
+ /**
+ * The default value of the '{@link #getPort() <em>Port</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPort()
+ * @generated
+ * @ordered
+ */
+ protected static final String PORT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPort() <em>Port</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPort()
+ * @generated
+ * @ordered
+ */
+ protected String port = PORT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSigname() <em>Signame</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSigname()
+ * @generated
+ * @ordered
+ */
+ protected static final String SIGNAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSigname() <em>Signame</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSigname()
+ * @generated
+ * @ordered
+ */
+ protected String signame = SIGNAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIntVal() <em>Int Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIntVal()
+ * @generated
+ * @ordered
+ */
+ protected static final int INT_VAL_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIntVal() <em>Int Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIntVal()
+ * @generated
+ * @ordered
+ */
+ protected int intVal = INT_VAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getStrVal() <em>Str Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStrVal()
+ * @generated
+ * @ordered
+ */
+ protected static final String STR_VAL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStrVal() <em>Str Val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStrVal()
+ * @generated
+ * @ordered
+ */
+ protected String strVal = STR_VAL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SignalDeclarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.SIGNAL_DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPort()
+ {
+ return port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPort(String newPort)
+ {
+ String oldPort = port;
+ port = newPort;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.SIGNAL_DECLARATION__PORT, oldPort, port));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSigname()
+ {
+ return signame;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSigname(String newSigname)
+ {
+ String oldSigname = signame;
+ signame = newSigname;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.SIGNAL_DECLARATION__SIGNAME, oldSigname, signame));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIntVal()
+ {
+ return intVal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIntVal(int newIntVal)
+ {
+ int oldIntVal = intVal;
+ intVal = newIntVal;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.SIGNAL_DECLARATION__INT_VAL, oldIntVal, intVal));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getStrVal()
+ {
+ return strVal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStrVal(String newStrVal)
+ {
+ String oldStrVal = strVal;
+ strVal = newStrVal;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.SIGNAL_DECLARATION__STR_VAL, oldStrVal, strVal));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SIGNAL_DECLARATION__PORT:
+ return getPort();
+ case FsmtestPackage.SIGNAL_DECLARATION__SIGNAME:
+ return getSigname();
+ case FsmtestPackage.SIGNAL_DECLARATION__INT_VAL:
+ return getIntVal();
+ case FsmtestPackage.SIGNAL_DECLARATION__STR_VAL:
+ return getStrVal();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SIGNAL_DECLARATION__PORT:
+ setPort((String)newValue);
+ return;
+ case FsmtestPackage.SIGNAL_DECLARATION__SIGNAME:
+ setSigname((String)newValue);
+ return;
+ case FsmtestPackage.SIGNAL_DECLARATION__INT_VAL:
+ setIntVal((Integer)newValue);
+ return;
+ case FsmtestPackage.SIGNAL_DECLARATION__STR_VAL:
+ setStrVal((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SIGNAL_DECLARATION__PORT:
+ setPort(PORT_EDEFAULT);
+ return;
+ case FsmtestPackage.SIGNAL_DECLARATION__SIGNAME:
+ setSigname(SIGNAME_EDEFAULT);
+ return;
+ case FsmtestPackage.SIGNAL_DECLARATION__INT_VAL:
+ setIntVal(INT_VAL_EDEFAULT);
+ return;
+ case FsmtestPackage.SIGNAL_DECLARATION__STR_VAL:
+ setStrVal(STR_VAL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SIGNAL_DECLARATION__PORT:
+ return PORT_EDEFAULT == null ? port != null : !PORT_EDEFAULT.equals(port);
+ case FsmtestPackage.SIGNAL_DECLARATION__SIGNAME:
+ return SIGNAME_EDEFAULT == null ? signame != null : !SIGNAME_EDEFAULT.equals(signame);
+ case FsmtestPackage.SIGNAL_DECLARATION__INT_VAL:
+ return intVal != INT_VAL_EDEFAULT;
+ case FsmtestPackage.SIGNAL_DECLARATION__STR_VAL:
+ return STR_VAL_EDEFAULT == null ? strVal != null : !STR_VAL_EDEFAULT.equals(strVal);
+ }
+ 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(" (port: ");
+ result.append(port);
+ result.append(", signame: ");
+ result.append(signame);
+ result.append(", intVal: ");
+ result.append(intVal);
+ result.append(", strVal: ");
+ result.append(strVal);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SignalDeclarationImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SourceDeclarationImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SourceDeclarationImpl.java
new file mode 100644
index 000000000..aecce3237
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/SourceDeclarationImpl.java
@@ -0,0 +1,173 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.SourceDeclaration;
+import org.eclipse.etrice.generator.fsmtest.State;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Source Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.SourceDeclarationImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SourceDeclarationImpl extends MinimalEObjectImpl.Container implements SourceDeclaration
+{
+ /**
+ * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRef()
+ * @generated
+ * @ordered
+ */
+ protected State ref;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SourceDeclarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.SOURCE_DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getRef()
+ {
+ if (ref != null && ref.eIsProxy())
+ {
+ InternalEObject oldRef = (InternalEObject)ref;
+ ref = (State)eResolveProxy(oldRef);
+ if (ref != oldRef)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FsmtestPackage.SOURCE_DECLARATION__REF, oldRef, ref));
+ }
+ }
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State basicGetRef()
+ {
+ return ref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRef(State newRef)
+ {
+ State oldRef = ref;
+ ref = newRef;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.SOURCE_DECLARATION__REF, oldRef, ref));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SOURCE_DECLARATION__REF:
+ if (resolve) return getRef();
+ return basicGetRef();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SOURCE_DECLARATION__REF:
+ setRef((State)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SOURCE_DECLARATION__REF:
+ setRef((State)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.SOURCE_DECLARATION__REF:
+ return ref != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SourceDeclarationImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/StateDeclarationImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/StateDeclarationImpl.java
new file mode 100644
index 000000000..bd37ffeb8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/StateDeclarationImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.State;
+import org.eclipse.etrice.generator.fsmtest.StateDeclaration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>State Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.StateDeclarationImpl#getStates <em>States</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StateDeclarationImpl extends MinimalEObjectImpl.Container implements StateDeclaration
+{
+ /**
+ * 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 StateDeclarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.STATE_DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<State> getStates()
+ {
+ if (states == null)
+ {
+ states = new EObjectContainmentEList<State>(State.class, this, FsmtestPackage.STATE_DECLARATION__STATES);
+ }
+ return states;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.STATE_DECLARATION__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 FsmtestPackage.STATE_DECLARATION__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 FsmtestPackage.STATE_DECLARATION__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 FsmtestPackage.STATE_DECLARATION__STATES:
+ getStates().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.STATE_DECLARATION__STATES:
+ return states != null && !states.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //StateDeclarationImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/StateImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/StateImpl.java
new file mode 100644
index 000000000..f9d7991d0
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/StateImpl.java
@@ -0,0 +1,177 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.MinimalEObjectImpl;
+
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.State;
+
+/**
+ * <!-- 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.etrice.generator.fsmtest.impl.StateImpl#getName <em>Name</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;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.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, FsmtestPackage.STATE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.STATE__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 FsmtestPackage.STATE__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 FsmtestPackage.STATE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.STATE__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();
+ }
+
+} //StateImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/TestscriptImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/TestscriptImpl.java
new file mode 100644
index 000000000..e4e9b4ef5
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/TestscriptImpl.java
@@ -0,0 +1,528 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.InitialDeclaration;
+import org.eclipse.etrice.generator.fsmtest.LoopsDeclaration;
+import org.eclipse.etrice.generator.fsmtest.SeedDeclaration;
+import org.eclipse.etrice.generator.fsmtest.StateDeclaration;
+import org.eclipse.etrice.generator.fsmtest.Testscript;
+import org.eclipse.etrice.generator.fsmtest.TransitionDeclaration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Testscript</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl#getStateDeclaration <em>State Declaration</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl#getInitialDeclaration <em>Initial Declaration</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl#getLoopsDeclaration <em>Loops Declaration</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl#getSeedDeclaration <em>Seed Declaration</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TestscriptImpl#getTransitionDeclarations <em>Transition Declarations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TestscriptImpl extends MinimalEObjectImpl.Container implements Testscript
+{
+ /**
+ * 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 #getStateDeclaration() <em>State Declaration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStateDeclaration()
+ * @generated
+ * @ordered
+ */
+ protected StateDeclaration stateDeclaration;
+
+ /**
+ * The cached value of the '{@link #getInitialDeclaration() <em>Initial Declaration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitialDeclaration()
+ * @generated
+ * @ordered
+ */
+ protected InitialDeclaration initialDeclaration;
+
+ /**
+ * The cached value of the '{@link #getLoopsDeclaration() <em>Loops Declaration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLoopsDeclaration()
+ * @generated
+ * @ordered
+ */
+ protected LoopsDeclaration loopsDeclaration;
+
+ /**
+ * The cached value of the '{@link #getSeedDeclaration() <em>Seed Declaration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeedDeclaration()
+ * @generated
+ * @ordered
+ */
+ protected SeedDeclaration seedDeclaration;
+
+ /**
+ * The cached value of the '{@link #getTransitionDeclarations() <em>Transition Declarations</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransitionDeclarations()
+ * @generated
+ * @ordered
+ */
+ protected EList<TransitionDeclaration> transitionDeclarations;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TestscriptImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.TESTSCRIPT;
+ }
+
+ /**
+ * <!-- 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, FsmtestPackage.TESTSCRIPT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateDeclaration getStateDeclaration()
+ {
+ return stateDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStateDeclaration(StateDeclaration newStateDeclaration, NotificationChain msgs)
+ {
+ StateDeclaration oldStateDeclaration = stateDeclaration;
+ stateDeclaration = newStateDeclaration;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FsmtestPackage.TESTSCRIPT__STATE_DECLARATION, oldStateDeclaration, newStateDeclaration);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStateDeclaration(StateDeclaration newStateDeclaration)
+ {
+ if (newStateDeclaration != stateDeclaration)
+ {
+ NotificationChain msgs = null;
+ if (stateDeclaration != null)
+ msgs = ((InternalEObject)stateDeclaration).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TESTSCRIPT__STATE_DECLARATION, null, msgs);
+ if (newStateDeclaration != null)
+ msgs = ((InternalEObject)newStateDeclaration).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TESTSCRIPT__STATE_DECLARATION, null, msgs);
+ msgs = basicSetStateDeclaration(newStateDeclaration, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.TESTSCRIPT__STATE_DECLARATION, newStateDeclaration, newStateDeclaration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InitialDeclaration getInitialDeclaration()
+ {
+ return initialDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInitialDeclaration(InitialDeclaration newInitialDeclaration, NotificationChain msgs)
+ {
+ InitialDeclaration oldInitialDeclaration = initialDeclaration;
+ initialDeclaration = newInitialDeclaration;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION, oldInitialDeclaration, newInitialDeclaration);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitialDeclaration(InitialDeclaration newInitialDeclaration)
+ {
+ if (newInitialDeclaration != initialDeclaration)
+ {
+ NotificationChain msgs = null;
+ if (initialDeclaration != null)
+ msgs = ((InternalEObject)initialDeclaration).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION, null, msgs);
+ if (newInitialDeclaration != null)
+ msgs = ((InternalEObject)newInitialDeclaration).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION, null, msgs);
+ msgs = basicSetInitialDeclaration(newInitialDeclaration, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION, newInitialDeclaration, newInitialDeclaration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LoopsDeclaration getLoopsDeclaration()
+ {
+ return loopsDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLoopsDeclaration(LoopsDeclaration newLoopsDeclaration, NotificationChain msgs)
+ {
+ LoopsDeclaration oldLoopsDeclaration = loopsDeclaration;
+ loopsDeclaration = newLoopsDeclaration;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION, oldLoopsDeclaration, newLoopsDeclaration);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLoopsDeclaration(LoopsDeclaration newLoopsDeclaration)
+ {
+ if (newLoopsDeclaration != loopsDeclaration)
+ {
+ NotificationChain msgs = null;
+ if (loopsDeclaration != null)
+ msgs = ((InternalEObject)loopsDeclaration).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION, null, msgs);
+ if (newLoopsDeclaration != null)
+ msgs = ((InternalEObject)newLoopsDeclaration).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION, null, msgs);
+ msgs = basicSetLoopsDeclaration(newLoopsDeclaration, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION, newLoopsDeclaration, newLoopsDeclaration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SeedDeclaration getSeedDeclaration()
+ {
+ return seedDeclaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSeedDeclaration(SeedDeclaration newSeedDeclaration, NotificationChain msgs)
+ {
+ SeedDeclaration oldSeedDeclaration = seedDeclaration;
+ seedDeclaration = newSeedDeclaration;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FsmtestPackage.TESTSCRIPT__SEED_DECLARATION, oldSeedDeclaration, newSeedDeclaration);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSeedDeclaration(SeedDeclaration newSeedDeclaration)
+ {
+ if (newSeedDeclaration != seedDeclaration)
+ {
+ NotificationChain msgs = null;
+ if (seedDeclaration != null)
+ msgs = ((InternalEObject)seedDeclaration).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TESTSCRIPT__SEED_DECLARATION, null, msgs);
+ if (newSeedDeclaration != null)
+ msgs = ((InternalEObject)newSeedDeclaration).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TESTSCRIPT__SEED_DECLARATION, null, msgs);
+ msgs = basicSetSeedDeclaration(newSeedDeclaration, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.TESTSCRIPT__SEED_DECLARATION, newSeedDeclaration, newSeedDeclaration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TransitionDeclaration> getTransitionDeclarations()
+ {
+ if (transitionDeclarations == null)
+ {
+ transitionDeclarations = new EObjectContainmentEList<TransitionDeclaration>(TransitionDeclaration.class, this, FsmtestPackage.TESTSCRIPT__TRANSITION_DECLARATIONS);
+ }
+ return transitionDeclarations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.TESTSCRIPT__STATE_DECLARATION:
+ return basicSetStateDeclaration(null, msgs);
+ case FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION:
+ return basicSetInitialDeclaration(null, msgs);
+ case FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION:
+ return basicSetLoopsDeclaration(null, msgs);
+ case FsmtestPackage.TESTSCRIPT__SEED_DECLARATION:
+ return basicSetSeedDeclaration(null, msgs);
+ case FsmtestPackage.TESTSCRIPT__TRANSITION_DECLARATIONS:
+ return ((InternalEList<?>)getTransitionDeclarations()).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 FsmtestPackage.TESTSCRIPT__NAME:
+ return getName();
+ case FsmtestPackage.TESTSCRIPT__STATE_DECLARATION:
+ return getStateDeclaration();
+ case FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION:
+ return getInitialDeclaration();
+ case FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION:
+ return getLoopsDeclaration();
+ case FsmtestPackage.TESTSCRIPT__SEED_DECLARATION:
+ return getSeedDeclaration();
+ case FsmtestPackage.TESTSCRIPT__TRANSITION_DECLARATIONS:
+ return getTransitionDeclarations();
+ }
+ 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 FsmtestPackage.TESTSCRIPT__NAME:
+ setName((String)newValue);
+ return;
+ case FsmtestPackage.TESTSCRIPT__STATE_DECLARATION:
+ setStateDeclaration((StateDeclaration)newValue);
+ return;
+ case FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION:
+ setInitialDeclaration((InitialDeclaration)newValue);
+ return;
+ case FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION:
+ setLoopsDeclaration((LoopsDeclaration)newValue);
+ return;
+ case FsmtestPackage.TESTSCRIPT__SEED_DECLARATION:
+ setSeedDeclaration((SeedDeclaration)newValue);
+ return;
+ case FsmtestPackage.TESTSCRIPT__TRANSITION_DECLARATIONS:
+ getTransitionDeclarations().clear();
+ getTransitionDeclarations().addAll((Collection<? extends TransitionDeclaration>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.TESTSCRIPT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case FsmtestPackage.TESTSCRIPT__STATE_DECLARATION:
+ setStateDeclaration((StateDeclaration)null);
+ return;
+ case FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION:
+ setInitialDeclaration((InitialDeclaration)null);
+ return;
+ case FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION:
+ setLoopsDeclaration((LoopsDeclaration)null);
+ return;
+ case FsmtestPackage.TESTSCRIPT__SEED_DECLARATION:
+ setSeedDeclaration((SeedDeclaration)null);
+ return;
+ case FsmtestPackage.TESTSCRIPT__TRANSITION_DECLARATIONS:
+ getTransitionDeclarations().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.TESTSCRIPT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case FsmtestPackage.TESTSCRIPT__STATE_DECLARATION:
+ return stateDeclaration != null;
+ case FsmtestPackage.TESTSCRIPT__INITIAL_DECLARATION:
+ return initialDeclaration != null;
+ case FsmtestPackage.TESTSCRIPT__LOOPS_DECLARATION:
+ return loopsDeclaration != null;
+ case FsmtestPackage.TESTSCRIPT__SEED_DECLARATION:
+ return seedDeclaration != null;
+ case FsmtestPackage.TESTSCRIPT__TRANSITION_DECLARATIONS:
+ return transitionDeclarations != null && !transitionDeclarations.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();
+ }
+
+} //TestscriptImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/TransitionDeclarationImpl.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/TransitionDeclarationImpl.java
new file mode 100644
index 000000000..81ca669b7
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/impl/TransitionDeclarationImpl.java
@@ -0,0 +1,351 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.etrice.generator.fsmtest.DestinationDeclaration;
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.SignalDeclaration;
+import org.eclipse.etrice.generator.fsmtest.SourceDeclaration;
+import org.eclipse.etrice.generator.fsmtest.TransitionDeclaration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transition Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TransitionDeclarationImpl#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TransitionDeclarationImpl#getIn <em>In</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TransitionDeclarationImpl#getOut <em>Out</em>}</li>
+ * <li>{@link org.eclipse.etrice.generator.fsmtest.impl.TransitionDeclarationImpl#getDestination <em>Destination</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransitionDeclarationImpl extends MinimalEObjectImpl.Container implements TransitionDeclaration
+{
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected SourceDeclaration source;
+
+ /**
+ * The cached value of the '{@link #getIn() <em>In</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn()
+ * @generated
+ * @ordered
+ */
+ protected EList<SignalDeclaration> in;
+
+ /**
+ * The cached value of the '{@link #getOut() <em>Out</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOut()
+ * @generated
+ * @ordered
+ */
+ protected EList<SignalDeclaration> out;
+
+ /**
+ * The cached value of the '{@link #getDestination() <em>Destination</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDestination()
+ * @generated
+ * @ordered
+ */
+ protected DestinationDeclaration destination;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransitionDeclarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return FsmtestPackage.Literals.TRANSITION_DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SourceDeclaration getSource()
+ {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSource(SourceDeclaration newSource, NotificationChain msgs)
+ {
+ SourceDeclaration oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FsmtestPackage.TRANSITION_DECLARATION__SOURCE, oldSource, newSource);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSource(SourceDeclaration newSource)
+ {
+ if (newSource != source)
+ {
+ NotificationChain msgs = null;
+ if (source != null)
+ msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TRANSITION_DECLARATION__SOURCE, null, msgs);
+ if (newSource != null)
+ msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TRANSITION_DECLARATION__SOURCE, null, msgs);
+ msgs = basicSetSource(newSource, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.TRANSITION_DECLARATION__SOURCE, newSource, newSource));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SignalDeclaration> getIn()
+ {
+ if (in == null)
+ {
+ in = new EObjectContainmentEList<SignalDeclaration>(SignalDeclaration.class, this, FsmtestPackage.TRANSITION_DECLARATION__IN);
+ }
+ return in;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SignalDeclaration> getOut()
+ {
+ if (out == null)
+ {
+ out = new EObjectContainmentEList<SignalDeclaration>(SignalDeclaration.class, this, FsmtestPackage.TRANSITION_DECLARATION__OUT);
+ }
+ return out;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DestinationDeclaration getDestination()
+ {
+ return destination;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDestination(DestinationDeclaration newDestination, NotificationChain msgs)
+ {
+ DestinationDeclaration oldDestination = destination;
+ destination = newDestination;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FsmtestPackage.TRANSITION_DECLARATION__DESTINATION, oldDestination, newDestination);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDestination(DestinationDeclaration newDestination)
+ {
+ if (newDestination != destination)
+ {
+ NotificationChain msgs = null;
+ if (destination != null)
+ msgs = ((InternalEObject)destination).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TRANSITION_DECLARATION__DESTINATION, null, msgs);
+ if (newDestination != null)
+ msgs = ((InternalEObject)newDestination).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FsmtestPackage.TRANSITION_DECLARATION__DESTINATION, null, msgs);
+ msgs = basicSetDestination(newDestination, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FsmtestPackage.TRANSITION_DECLARATION__DESTINATION, newDestination, newDestination));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.TRANSITION_DECLARATION__SOURCE:
+ return basicSetSource(null, msgs);
+ case FsmtestPackage.TRANSITION_DECLARATION__IN:
+ return ((InternalEList<?>)getIn()).basicRemove(otherEnd, msgs);
+ case FsmtestPackage.TRANSITION_DECLARATION__OUT:
+ return ((InternalEList<?>)getOut()).basicRemove(otherEnd, msgs);
+ case FsmtestPackage.TRANSITION_DECLARATION__DESTINATION:
+ return basicSetDestination(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 FsmtestPackage.TRANSITION_DECLARATION__SOURCE:
+ return getSource();
+ case FsmtestPackage.TRANSITION_DECLARATION__IN:
+ return getIn();
+ case FsmtestPackage.TRANSITION_DECLARATION__OUT:
+ return getOut();
+ case FsmtestPackage.TRANSITION_DECLARATION__DESTINATION:
+ return getDestination();
+ }
+ 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 FsmtestPackage.TRANSITION_DECLARATION__SOURCE:
+ setSource((SourceDeclaration)newValue);
+ return;
+ case FsmtestPackage.TRANSITION_DECLARATION__IN:
+ getIn().clear();
+ getIn().addAll((Collection<? extends SignalDeclaration>)newValue);
+ return;
+ case FsmtestPackage.TRANSITION_DECLARATION__OUT:
+ getOut().clear();
+ getOut().addAll((Collection<? extends SignalDeclaration>)newValue);
+ return;
+ case FsmtestPackage.TRANSITION_DECLARATION__DESTINATION:
+ setDestination((DestinationDeclaration)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.TRANSITION_DECLARATION__SOURCE:
+ setSource((SourceDeclaration)null);
+ return;
+ case FsmtestPackage.TRANSITION_DECLARATION__IN:
+ getIn().clear();
+ return;
+ case FsmtestPackage.TRANSITION_DECLARATION__OUT:
+ getOut().clear();
+ return;
+ case FsmtestPackage.TRANSITION_DECLARATION__DESTINATION:
+ setDestination((DestinationDeclaration)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case FsmtestPackage.TRANSITION_DECLARATION__SOURCE:
+ return source != null;
+ case FsmtestPackage.TRANSITION_DECLARATION__IN:
+ return in != null && !in.isEmpty();
+ case FsmtestPackage.TRANSITION_DECLARATION__OUT:
+ return out != null && !out.isEmpty();
+ case FsmtestPackage.TRANSITION_DECLARATION__DESTINATION:
+ return destination != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TransitionDeclarationImpl
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/util/FsmtestAdapterFactory.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/util/FsmtestAdapterFactory.java
new file mode 100644
index 000000000..742883b59
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/util/FsmtestAdapterFactory.java
@@ -0,0 +1,332 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.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.etrice.generator.fsmtest.*;
+
+/**
+ * <!-- 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.etrice.generator.fsmtest.FsmtestPackage
+ * @generated
+ */
+public class FsmtestAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FsmtestPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FsmtestAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = FsmtestPackage.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 FsmtestSwitch<Adapter> modelSwitch =
+ new FsmtestSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseModel(Model object)
+ {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter caseTestscript(Testscript object)
+ {
+ return createTestscriptAdapter();
+ }
+ @Override
+ public Adapter caseState(State object)
+ {
+ return createStateAdapter();
+ }
+ @Override
+ public Adapter caseStateDeclaration(StateDeclaration object)
+ {
+ return createStateDeclarationAdapter();
+ }
+ @Override
+ public Adapter caseInitialDeclaration(InitialDeclaration object)
+ {
+ return createInitialDeclarationAdapter();
+ }
+ @Override
+ public Adapter caseLoopsDeclaration(LoopsDeclaration object)
+ {
+ return createLoopsDeclarationAdapter();
+ }
+ @Override
+ public Adapter caseSeedDeclaration(SeedDeclaration object)
+ {
+ return createSeedDeclarationAdapter();
+ }
+ @Override
+ public Adapter caseSignalDeclaration(SignalDeclaration object)
+ {
+ return createSignalDeclarationAdapter();
+ }
+ @Override
+ public Adapter caseSourceDeclaration(SourceDeclaration object)
+ {
+ return createSourceDeclarationAdapter();
+ }
+ @Override
+ public Adapter caseDestinationDeclaration(DestinationDeclaration object)
+ {
+ return createDestinationDeclarationAdapter();
+ }
+ @Override
+ public Adapter caseTransitionDeclaration(TransitionDeclaration object)
+ {
+ return createTransitionDeclarationAdapter();
+ }
+ @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.etrice.generator.fsmtest.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.etrice.generator.fsmtest.Model
+ * @generated
+ */
+ public Adapter createModelAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.Testscript <em>Testscript</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.etrice.generator.fsmtest.Testscript
+ * @generated
+ */
+ public Adapter createTestscriptAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.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.etrice.generator.fsmtest.State
+ * @generated
+ */
+ public Adapter createStateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.StateDeclaration <em>State Declaration</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.etrice.generator.fsmtest.StateDeclaration
+ * @generated
+ */
+ public Adapter createStateDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.InitialDeclaration <em>Initial Declaration</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.etrice.generator.fsmtest.InitialDeclaration
+ * @generated
+ */
+ public Adapter createInitialDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.LoopsDeclaration <em>Loops Declaration</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.etrice.generator.fsmtest.LoopsDeclaration
+ * @generated
+ */
+ public Adapter createLoopsDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.SeedDeclaration <em>Seed Declaration</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.etrice.generator.fsmtest.SeedDeclaration
+ * @generated
+ */
+ public Adapter createSeedDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.SignalDeclaration <em>Signal Declaration</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.etrice.generator.fsmtest.SignalDeclaration
+ * @generated
+ */
+ public Adapter createSignalDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.SourceDeclaration <em>Source Declaration</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.etrice.generator.fsmtest.SourceDeclaration
+ * @generated
+ */
+ public Adapter createSourceDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.DestinationDeclaration <em>Destination Declaration</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.etrice.generator.fsmtest.DestinationDeclaration
+ * @generated
+ */
+ public Adapter createDestinationDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.generator.fsmtest.TransitionDeclaration <em>Transition Declaration</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.etrice.generator.fsmtest.TransitionDeclaration
+ * @generated
+ */
+ public Adapter createTransitionDeclarationAdapter()
+ {
+ 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;
+ }
+
+} //FsmtestAdapterFactory
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/util/FsmtestSwitch.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/util/FsmtestSwitch.java
new file mode 100644
index 000000000..831de1202
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/fsmtest/util/FsmtestSwitch.java
@@ -0,0 +1,349 @@
+/**
+ */
+package org.eclipse.etrice.generator.fsmtest.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.etrice.generator.fsmtest.*;
+
+/**
+ * <!-- 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.etrice.generator.fsmtest.FsmtestPackage
+ * @generated
+ */
+public class FsmtestSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FsmtestPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FsmtestSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = FsmtestPackage.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 FsmtestPackage.MODEL:
+ {
+ Model model = (Model)theEObject;
+ T result = caseModel(model);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.TESTSCRIPT:
+ {
+ Testscript testscript = (Testscript)theEObject;
+ T result = caseTestscript(testscript);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.STATE:
+ {
+ State state = (State)theEObject;
+ T result = caseState(state);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.STATE_DECLARATION:
+ {
+ StateDeclaration stateDeclaration = (StateDeclaration)theEObject;
+ T result = caseStateDeclaration(stateDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.INITIAL_DECLARATION:
+ {
+ InitialDeclaration initialDeclaration = (InitialDeclaration)theEObject;
+ T result = caseInitialDeclaration(initialDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.LOOPS_DECLARATION:
+ {
+ LoopsDeclaration loopsDeclaration = (LoopsDeclaration)theEObject;
+ T result = caseLoopsDeclaration(loopsDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.SEED_DECLARATION:
+ {
+ SeedDeclaration seedDeclaration = (SeedDeclaration)theEObject;
+ T result = caseSeedDeclaration(seedDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.SIGNAL_DECLARATION:
+ {
+ SignalDeclaration signalDeclaration = (SignalDeclaration)theEObject;
+ T result = caseSignalDeclaration(signalDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.SOURCE_DECLARATION:
+ {
+ SourceDeclaration sourceDeclaration = (SourceDeclaration)theEObject;
+ T result = caseSourceDeclaration(sourceDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.DESTINATION_DECLARATION:
+ {
+ DestinationDeclaration destinationDeclaration = (DestinationDeclaration)theEObject;
+ T result = caseDestinationDeclaration(destinationDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FsmtestPackage.TRANSITION_DECLARATION:
+ {
+ TransitionDeclaration transitionDeclaration = (TransitionDeclaration)theEObject;
+ T result = caseTransitionDeclaration(transitionDeclaration);
+ 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>Testscript</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>Testscript</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTestscript(Testscript 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>State Declaration</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 Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStateDeclaration(StateDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Initial Declaration</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>Initial Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInitialDeclaration(InitialDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loops Declaration</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>Loops Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoopsDeclaration(LoopsDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Seed Declaration</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>Seed Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSeedDeclaration(SeedDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Signal Declaration</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>Signal Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSignalDeclaration(SignalDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Source Declaration</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>Source Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSourceDeclaration(SourceDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Destination Declaration</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>Destination Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDestinationDeclaration(DestinationDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transition Declaration</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 Declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransitionDeclaration(TransitionDeclaration 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;
+ }
+
+} //FsmtestSwitch
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/FSMtestAntlrTokenFileProvider.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/FSMtestAntlrTokenFileProvider.java
new file mode 100644
index 000000000..74958406b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/FSMtestAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class FSMtestAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.tokens");
+ }
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/FSMtestParser.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/FSMtestParser.java
new file mode 100644
index 000000000..93cd730b2
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/FSMtestParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.etrice.generator.services.FSMtestGrammarAccess;
+
+public class FSMtestParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private FSMtestGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.eclipse.etrice.generator.parser.antlr.internal.InternalFSMtestParser createParser(XtextTokenStream stream) {
+ return new org.eclipse.etrice.generator.parser.antlr.internal.InternalFSMtestParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Model";
+ }
+
+ public FSMtestGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(FSMtestGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g
new file mode 100644
index 000000000..c26df9733
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g
@@ -0,0 +1,767 @@
+/*
+* generated by Xtext
+*/
+grammar InternalFSMtest;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.etrice.generator.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.etrice.generator.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.etrice.generator.services.FSMtestGrammarAccess;
+
+}
+
+@parser::members {
+
+ private FSMtestGrammarAccess grammarAccess;
+
+ public InternalFSMtestParser(TokenStream input, FSMtestGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Model";
+ }
+
+ @Override
+ protected FSMtestGrammarAccess 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().getTestscriptsTestscriptParserRuleCall_0());
+ }
+ lv_Testscripts_0_0=ruleTestscript {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModelRule());
+ }
+ add(
+ $current,
+ "Testscripts",
+ lv_Testscripts_0_0,
+ "Testscript");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*
+;
+
+
+
+
+
+// Entry rule entryRuleTestscript
+entryRuleTestscript returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTestscriptRule()); }
+ iv_ruleTestscript=ruleTestscript
+ { $current=$iv_ruleTestscript.current; }
+ EOF
+;
+
+// Rule Testscript
+ruleTestscript returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='fsmtest'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getTestscriptAccess().getFsmtestKeyword_0());
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ newLeafNode(lv_name_1_0, grammarAccess.getTestscriptAccess().getNameIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTestscriptRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getTestscriptAccess().getStateDeclarationStateDeclarationParserRuleCall_2_0());
+ }
+ lv_stateDeclaration_2_0=ruleStateDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ set(
+ $current,
+ "stateDeclaration",
+ lv_stateDeclaration_2_0,
+ "StateDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getTestscriptAccess().getInitialDeclarationInitialDeclarationParserRuleCall_3_0());
+ }
+ lv_initialDeclaration_3_0=ruleInitialDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ set(
+ $current,
+ "initialDeclaration",
+ lv_initialDeclaration_3_0,
+ "InitialDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getTestscriptAccess().getLoopsDeclarationLoopsDeclarationParserRuleCall_4_0());
+ }
+ lv_loopsDeclaration_4_0=ruleLoopsDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ set(
+ $current,
+ "loopsDeclaration",
+ lv_loopsDeclaration_4_0,
+ "LoopsDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getTestscriptAccess().getSeedDeclarationSeedDeclarationParserRuleCall_5_0());
+ }
+ lv_seedDeclaration_5_0=ruleSeedDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ set(
+ $current,
+ "seedDeclaration",
+ lv_seedDeclaration_5_0,
+ "SeedDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getTestscriptAccess().getTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0());
+ }
+ lv_transitionDeclarations_6_0=ruleTransitionDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ add(
+ $current,
+ "transitionDeclarations",
+ lv_transitionDeclarations_6_0,
+ "TransitionDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_7=';'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getTestscriptAccess().getSemicolonKeyword_7());
+ }
+)
+;
+
+
+
+
+
+// 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(); }:
+(
+(
+ lv_name_0_0=RULE_ID
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStateDeclaration
+entryRuleStateDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStateDeclarationRule()); }
+ iv_ruleStateDeclaration=ruleStateDeclaration
+ { $current=$iv_ruleStateDeclaration.current; }
+ EOF
+;
+
+// Rule StateDeclaration
+ruleStateDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='states:'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getStateDeclarationAccess().getStatesKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_1_0());
+ }
+ lv_states_1_0=ruleState {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStateDeclarationRule());
+ }
+ add(
+ $current,
+ "states",
+ lv_states_1_0,
+ "State");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_2=','
+ {
+ newLeafNode(otherlv_2, grammarAccess.getStateDeclarationAccess().getCommaKeyword_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_2_1_0());
+ }
+ lv_states_3_0=ruleState {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStateDeclarationRule());
+ }
+ add(
+ $current,
+ "states",
+ lv_states_3_0,
+ "State");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleInitialDeclaration
+entryRuleInitialDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getInitialDeclarationRule()); }
+ iv_ruleInitialDeclaration=ruleInitialDeclaration
+ { $current=$iv_ruleInitialDeclaration.current; }
+ EOF
+;
+
+// Rule InitialDeclaration
+ruleInitialDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='initial:'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getInitialDeclarationAccess().getInitialKeyword_0());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getInitialDeclarationRule());
+ }
+ }
+ otherlv_1=RULE_ID
+ {
+ newLeafNode(otherlv_1, grammarAccess.getInitialDeclarationAccess().getInitialStateCrossReference_1_0());
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleLoopsDeclaration
+entryRuleLoopsDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLoopsDeclarationRule()); }
+ iv_ruleLoopsDeclaration=ruleLoopsDeclaration
+ { $current=$iv_ruleLoopsDeclaration.current; }
+ EOF
+;
+
+// Rule LoopsDeclaration
+ruleLoopsDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='loops:'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getLoopsDeclarationAccess().getLoopsKeyword_0());
+ }
+(
+(
+ lv_val_1_0=RULE_INT
+ {
+ newLeafNode(lv_val_1_0, grammarAccess.getLoopsDeclarationAccess().getValINTTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getLoopsDeclarationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "val",
+ lv_val_1_0,
+ "INT");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSeedDeclaration
+entryRuleSeedDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSeedDeclarationRule()); }
+ iv_ruleSeedDeclaration=ruleSeedDeclaration
+ { $current=$iv_ruleSeedDeclaration.current; }
+ EOF
+;
+
+// Rule SeedDeclaration
+ruleSeedDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='randseed:'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSeedDeclarationAccess().getRandseedKeyword_0());
+ }
+(
+(
+ lv_val_1_0=RULE_INT
+ {
+ newLeafNode(lv_val_1_0, grammarAccess.getSeedDeclarationAccess().getValINTTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSeedDeclarationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "val",
+ lv_val_1_0,
+ "INT");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSignalDeclaration
+entryRuleSignalDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSignalDeclarationRule()); }
+ iv_ruleSignalDeclaration=ruleSignalDeclaration
+ { $current=$iv_ruleSignalDeclaration.current; }
+ EOF
+;
+
+// Rule SignalDeclaration
+ruleSignalDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ lv_port_0_0=RULE_ID
+ {
+ newLeafNode(lv_port_0_0, grammarAccess.getSignalDeclarationAccess().getPortIDTerminalRuleCall_0_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSignalDeclarationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "port",
+ lv_port_0_0,
+ "ID");
+ }
+
+)
+) otherlv_1='.'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSignalDeclarationAccess().getFullStopKeyword_0_1());
+ }
+)?(
+(
+ lv_signame_2_0=RULE_ID
+ {
+ newLeafNode(lv_signame_2_0, grammarAccess.getSignalDeclarationAccess().getSignameIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSignalDeclarationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "signame",
+ lv_signame_2_0,
+ "ID");
+ }
+
+)
+)(( otherlv_3='='
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_0_0());
+ }
+(
+(
+ lv_intVal_4_0=RULE_INT
+ {
+ newLeafNode(lv_intVal_4_0, grammarAccess.getSignalDeclarationAccess().getIntValINTTerminalRuleCall_2_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSignalDeclarationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "intVal",
+ lv_intVal_4_0,
+ "INT");
+ }
+
+)
+))
+ |( otherlv_5='='
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_1_0());
+ }
+(
+(
+ lv_strVal_6_0=RULE_STRING
+ {
+ newLeafNode(lv_strVal_6_0, grammarAccess.getSignalDeclarationAccess().getStrValSTRINGTerminalRuleCall_2_1_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSignalDeclarationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "strVal",
+ lv_strVal_6_0,
+ "STRING");
+ }
+
+)
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleSourceDeclaration
+entryRuleSourceDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSourceDeclarationRule()); }
+ iv_ruleSourceDeclaration=ruleSourceDeclaration
+ { $current=$iv_ruleSourceDeclaration.current; }
+ EOF
+;
+
+// Rule SourceDeclaration
+ruleSourceDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSourceDeclarationRule());
+ }
+ }
+ otherlv_0=RULE_ID
+ {
+ newLeafNode(otherlv_0, grammarAccess.getSourceDeclarationAccess().getRefStateCrossReference_0_0());
+ }
+
+)
+) otherlv_1=':'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSourceDeclarationAccess().getColonKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDestinationDeclaration
+entryRuleDestinationDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDestinationDeclarationRule()); }
+ iv_ruleDestinationDeclaration=ruleDestinationDeclaration
+ { $current=$iv_ruleDestinationDeclaration.current; }
+ EOF
+;
+
+// Rule DestinationDeclaration
+ruleDestinationDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='-> '
+ {
+ newLeafNode(otherlv_0, grammarAccess.getDestinationDeclarationAccess().getHyphenMinusGreaterThanSignSpaceKeyword_0());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getDestinationDeclarationRule());
+ }
+ }
+ otherlv_1=RULE_ID
+ {
+ newLeafNode(otherlv_1, grammarAccess.getDestinationDeclarationAccess().getRefStateCrossReference_1_0());
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTransitionDeclaration
+entryRuleTransitionDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTransitionDeclarationRule()); }
+ iv_ruleTransitionDeclaration=ruleTransitionDeclaration
+ { $current=$iv_ruleTransitionDeclaration.current; }
+ EOF
+;
+
+// Rule TransitionDeclaration
+ruleTransitionDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getTransitionDeclarationAccess().getSourceSourceDeclarationParserRuleCall_0_0());
+ }
+ lv_source_0_0=ruleSourceDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTransitionDeclarationRule());
+ }
+ set(
+ $current,
+ "source",
+ lv_source_0_0,
+ "SourceDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1='in:'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getTransitionDeclarationAccess().getInKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTransitionDeclarationAccess().getInSignalDeclarationParserRuleCall_2_0());
+ }
+ lv_in_2_0=ruleSignalDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTransitionDeclarationRule());
+ }
+ add(
+ $current,
+ "in",
+ lv_in_2_0,
+ "SignalDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_3='out:'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getTransitionDeclarationAccess().getOutKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTransitionDeclarationAccess().getOutSignalDeclarationParserRuleCall_4_0());
+ }
+ lv_out_4_0=ruleSignalDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTransitionDeclarationRule());
+ }
+ add(
+ $current,
+ "out",
+ lv_out_4_0,
+ "SignalDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*(
+(
+ {
+ newCompositeNode(grammarAccess.getTransitionDeclarationAccess().getDestinationDestinationDeclarationParserRuleCall_5_0());
+ }
+ lv_destination_5_0=ruleDestinationDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTransitionDeclarationRule());
+ }
+ set(
+ $current,
+ "destination",
+ lv_destination_5_0,
+ "DestinationDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+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/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.tokens b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.tokens
new file mode 100644
index 000000000..2d0f32706
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.tokens
@@ -0,0 +1,33 @@
+RULE_ID=4
+T__23=23
+T__22=22
+RULE_ANY_OTHER=10
+T__21=21
+T__20=20
+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
+'-> '=21
+'states:'=13
+'out:'=23
+'loops:'=16
+'fsmtest'=11
+'in:'=22
+';'=12
+'='=19
+':'=20
+'randseed:'=17
+','=14
+'.'=18
+'initial:'=15
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtestLexer.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtestLexer.java
new file mode 100644
index 000000000..be9e5da5f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtestLexer.java
@@ -0,0 +1,1198 @@
+package org.eclipse.etrice.generator.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 InternalFSMtestLexer extends Lexer {
+ public static final int RULE_ID=4;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ 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 InternalFSMtestLexer() {;}
+ public InternalFSMtestLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalFSMtestLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:11:7: ( 'fsmtest' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:11:9: 'fsmtest'
+ {
+ match("fsmtest");
+
+
+ }
+
+ 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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:12:7: ( ';' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:12:9: ';'
+ {
+ match(';');
+
+ }
+
+ 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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:13:7: ( 'states:' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:13:9: 'states:'
+ {
+ match("states:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:14:7: ( ',' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:14: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:15:7: ( 'initial:' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:15:9: 'initial:'
+ {
+ match("initial:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:16:7: ( 'loops:' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:16:9: 'loops:'
+ {
+ match("loops:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:17:7: ( 'randseed:' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:17:9: 'randseed:'
+ {
+ match("randseed:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:18:7: ( '.' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:19:7: ( '=' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:19: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:20:7: ( ':' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:20: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:21:7: ( '-> ' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:21: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:22:7: ( 'in:' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:22:9: 'in:'
+ {
+ match("in:");
+
+
+ }
+
+ 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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:23:7: ( 'out:' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:23:9: 'out:'
+ {
+ match("out:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__23"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:753:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:753:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:753:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:753: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:753: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:755:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:755:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:755: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:755: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:757: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:759:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:759:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:759: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:759: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:761:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:761:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:761: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:761: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:761: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:761:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:761:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:761: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:763:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:763:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:763: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:765:16: ( . )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:765:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=20;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:70: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:76: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:82: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:88: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:96: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:105: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:117: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:133: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:149: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:1:157: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\1\26\1\uffff\1\26\1\uffff\3\26\3\uffff\1\24\1\26\1\24"+
+ "\2\uffff\3\24\2\uffff\1\26\2\uffff\1\26\1\uffff\3\26\4\uffff\1\26"+
+ "\5\uffff\3\26\1\uffff\10\26\1\uffff\10\26\1\uffff\1\26\1\102\1\uffff"+
+ "\2\26\2\uffff\1\26\1\uffff";
+ static final String DFA12_eofS =
+ "\106\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\163\1\uffff\1\164\1\uffff\1\156\1\157\1\141\3\uffff\1\76"+
+ "\1\165\1\101\2\uffff\2\0\1\52\2\uffff\1\155\2\uffff\1\141\1\uffff"+
+ "\1\72\1\157\1\156\4\uffff\1\164\5\uffff\3\164\1\uffff\1\160\1\144"+
+ "\1\72\2\145\1\151\2\163\1\uffff\2\163\1\141\1\72\1\145\1\164\1\72"+
+ "\1\154\1\uffff\1\145\1\60\1\uffff\1\72\1\144\2\uffff\1\72\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\163\1\uffff\1\164\1\uffff\1\156\1\157\1\141\3\uffff"+
+ "\1\76\1\165\1\172\2\uffff\2\uffff\1\57\2\uffff\1\155\2\uffff\1\141"+
+ "\1\uffff\1\151\1\157\1\156\4\uffff\1\164\5\uffff\3\164\1\uffff\1"+
+ "\160\1\144\1\72\2\145\1\151\2\163\1\uffff\2\163\1\141\1\72\1\145"+
+ "\1\164\1\72\1\154\1\uffff\1\145\1\172\1\uffff\1\72\1\144\2\uffff"+
+ "\1\72\1\uffff";
+ static final String DFA12_acceptS =
+ "\2\uffff\1\2\1\uffff\1\4\3\uffff\1\10\1\11\1\12\3\uffff\1\16\1"+
+ "\17\3\uffff\1\23\1\24\1\uffff\1\16\1\2\1\uffff\1\4\3\uffff\1\10"+
+ "\1\11\1\12\1\13\1\uffff\1\17\1\20\1\21\1\22\1\23\3\uffff\1\14\10"+
+ "\uffff\1\15\10\uffff\1\6\2\uffff\1\3\2\uffff\1\1\1\5\1\uffff\1\7";
+ static final String DFA12_specialS =
+ "\1\1\17\uffff\1\2\1\0\64\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\24\2\23\2\24\1\23\22\24\1\23\1\24\1\20\4\24\1\21\4\24\1"+
+ "\4\1\13\1\10\1\22\12\17\1\12\1\2\1\24\1\11\3\24\32\16\3\24\1"+
+ "\15\1\16\1\24\5\16\1\1\2\16\1\5\2\16\1\6\2\16\1\14\2\16\1\7"+
+ "\1\3\7\16\uff85\24",
+ "\1\25",
+ "",
+ "\1\30",
+ "",
+ "\1\32",
+ "\1\33",
+ "\1\34",
+ "",
+ "",
+ "",
+ "\1\40",
+ "\1\41",
+ "\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "",
+ "\0\43",
+ "\0\43",
+ "\1\44\4\uffff\1\45",
+ "",
+ "",
+ "\1\47",
+ "",
+ "",
+ "\1\50",
+ "",
+ "\1\52\56\uffff\1\51",
+ "\1\53",
+ "\1\54",
+ "",
+ "",
+ "",
+ "",
+ "\1\55",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\56",
+ "\1\57",
+ "\1\60",
+ "",
+ "\1\61",
+ "\1\62",
+ "\1\63",
+ "\1\64",
+ "\1\65",
+ "\1\66",
+ "\1\67",
+ "\1\70",
+ "",
+ "\1\71",
+ "\1\72",
+ "\1\73",
+ "\1\74",
+ "\1\75",
+ "\1\76",
+ "\1\77",
+ "\1\100",
+ "",
+ "\1\101",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "\1\103",
+ "\1\104",
+ "",
+ "",
+ "\1\105",
+ ""
+ };
+
+ 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 | T__20 | T__21 | T__22 | T__23 | 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_17 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_17>='\u0000' && LA12_17<='\uFFFF')) ) {s = 35;}
+
+ else s = 20;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='f') ) {s = 1;}
+
+ else if ( (LA12_0==';') ) {s = 2;}
+
+ else if ( (LA12_0=='s') ) {s = 3;}
+
+ else if ( (LA12_0==',') ) {s = 4;}
+
+ else if ( (LA12_0=='i') ) {s = 5;}
+
+ else if ( (LA12_0=='l') ) {s = 6;}
+
+ else if ( (LA12_0=='r') ) {s = 7;}
+
+ else if ( (LA12_0=='.') ) {s = 8;}
+
+ else if ( (LA12_0=='=') ) {s = 9;}
+
+ else if ( (LA12_0==':') ) {s = 10;}
+
+ else if ( (LA12_0=='-') ) {s = 11;}
+
+ else if ( (LA12_0=='o') ) {s = 12;}
+
+ else if ( (LA12_0=='^') ) {s = 13;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||(LA12_0>='m' && LA12_0<='n')||(LA12_0>='p' && LA12_0<='q')||(LA12_0>='t' && LA12_0<='z')) ) {s = 14;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 15;}
+
+ else if ( (LA12_0=='\"') ) {s = 16;}
+
+ else if ( (LA12_0=='\'') ) {s = 17;}
+
+ else if ( (LA12_0=='/') ) {s = 18;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 19;}
+
+ 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<='\uFFFF')) ) {s = 20;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_16 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_16>='\u0000' && LA12_16<='\uFFFF')) ) {s = 35;}
+
+ else s = 20;
+
+ 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/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtestParser.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtestParser.java
new file mode 100644
index 000000000..eda7ecbcf
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtestParser.java
@@ -0,0 +1,1837 @@
+package org.eclipse.etrice.generator.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.etrice.generator.services.FSMtestGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalFSMtestParser 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", "'fsmtest'", "';'", "'states:'", "','", "'initial:'", "'loops:'", "'randseed:'", "'.'", "'='", "':'", "'-> '", "'in:'", "'out:'"
+ };
+ public static final int RULE_ID=4;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ 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 InternalFSMtestParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalFSMtestParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalFSMtestParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g"; }
+
+
+
+ private FSMtestGrammarAccess grammarAccess;
+
+ public InternalFSMtestParser(TokenStream input, FSMtestGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Model";
+ }
+
+ @Override
+ protected FSMtestGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRuleModel"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:68:2: (iv_ruleModel= ruleModel EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:69:2: iv_ruleModel= ruleModel EOF
+ {
+ newCompositeNode(grammarAccess.getModelRule());
+ pushFollow(FOLLOW_ruleModel_in_entryRuleModel75);
+ iv_ruleModel=ruleModel();
+
+ state._fsp--;
+
+ current =iv_ruleModel;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModel85);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleModel"
+
+
+ // $ANTLR start "ruleModel"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:76:1: ruleModel returns [EObject current=null] : ( (lv_Testscripts_0_0= ruleTestscript ) )* ;
+ public final EObject ruleModel() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_Testscripts_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:79:28: ( ( (lv_Testscripts_0_0= ruleTestscript ) )* )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:80:1: ( (lv_Testscripts_0_0= ruleTestscript ) )*
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:80:1: ( (lv_Testscripts_0_0= ruleTestscript ) )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==11) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:81:1: (lv_Testscripts_0_0= ruleTestscript )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:81:1: (lv_Testscripts_0_0= ruleTestscript )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:82:3: lv_Testscripts_0_0= ruleTestscript
+ {
+
+ newCompositeNode(grammarAccess.getModelAccess().getTestscriptsTestscriptParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleTestscript_in_ruleModel130);
+ lv_Testscripts_0_0=ruleTestscript();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModelRule());
+ }
+ add(
+ current,
+ "Testscripts",
+ lv_Testscripts_0_0,
+ "Testscript");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleModel"
+
+
+ // $ANTLR start "entryRuleTestscript"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:106:1: entryRuleTestscript returns [EObject current=null] : iv_ruleTestscript= ruleTestscript EOF ;
+ public final EObject entryRuleTestscript() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTestscript = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:107:2: (iv_ruleTestscript= ruleTestscript EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:108:2: iv_ruleTestscript= ruleTestscript EOF
+ {
+ newCompositeNode(grammarAccess.getTestscriptRule());
+ pushFollow(FOLLOW_ruleTestscript_in_entryRuleTestscript166);
+ iv_ruleTestscript=ruleTestscript();
+
+ state._fsp--;
+
+ current =iv_ruleTestscript;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTestscript176);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTestscript"
+
+
+ // $ANTLR start "ruleTestscript"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:115:1: ruleTestscript returns [EObject current=null] : (otherlv_0= 'fsmtest' ( (lv_name_1_0= RULE_ID ) ) ( (lv_stateDeclaration_2_0= ruleStateDeclaration ) ) ( (lv_initialDeclaration_3_0= ruleInitialDeclaration ) ) ( (lv_loopsDeclaration_4_0= ruleLoopsDeclaration ) ) ( (lv_seedDeclaration_5_0= ruleSeedDeclaration ) )? ( (lv_transitionDeclarations_6_0= ruleTransitionDeclaration ) )* otherlv_7= ';' ) ;
+ public final EObject ruleTestscript() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_name_1_0=null;
+ Token otherlv_7=null;
+ EObject lv_stateDeclaration_2_0 = null;
+
+ EObject lv_initialDeclaration_3_0 = null;
+
+ EObject lv_loopsDeclaration_4_0 = null;
+
+ EObject lv_seedDeclaration_5_0 = null;
+
+ EObject lv_transitionDeclarations_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:118:28: ( (otherlv_0= 'fsmtest' ( (lv_name_1_0= RULE_ID ) ) ( (lv_stateDeclaration_2_0= ruleStateDeclaration ) ) ( (lv_initialDeclaration_3_0= ruleInitialDeclaration ) ) ( (lv_loopsDeclaration_4_0= ruleLoopsDeclaration ) ) ( (lv_seedDeclaration_5_0= ruleSeedDeclaration ) )? ( (lv_transitionDeclarations_6_0= ruleTransitionDeclaration ) )* otherlv_7= ';' ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:119:1: (otherlv_0= 'fsmtest' ( (lv_name_1_0= RULE_ID ) ) ( (lv_stateDeclaration_2_0= ruleStateDeclaration ) ) ( (lv_initialDeclaration_3_0= ruleInitialDeclaration ) ) ( (lv_loopsDeclaration_4_0= ruleLoopsDeclaration ) ) ( (lv_seedDeclaration_5_0= ruleSeedDeclaration ) )? ( (lv_transitionDeclarations_6_0= ruleTransitionDeclaration ) )* otherlv_7= ';' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:119:1: (otherlv_0= 'fsmtest' ( (lv_name_1_0= RULE_ID ) ) ( (lv_stateDeclaration_2_0= ruleStateDeclaration ) ) ( (lv_initialDeclaration_3_0= ruleInitialDeclaration ) ) ( (lv_loopsDeclaration_4_0= ruleLoopsDeclaration ) ) ( (lv_seedDeclaration_5_0= ruleSeedDeclaration ) )? ( (lv_transitionDeclarations_6_0= ruleTransitionDeclaration ) )* otherlv_7= ';' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:119:3: otherlv_0= 'fsmtest' ( (lv_name_1_0= RULE_ID ) ) ( (lv_stateDeclaration_2_0= ruleStateDeclaration ) ) ( (lv_initialDeclaration_3_0= ruleInitialDeclaration ) ) ( (lv_loopsDeclaration_4_0= ruleLoopsDeclaration ) ) ( (lv_seedDeclaration_5_0= ruleSeedDeclaration ) )? ( (lv_transitionDeclarations_6_0= ruleTransitionDeclaration ) )* otherlv_7= ';'
+ {
+ otherlv_0=(Token)match(input,11,FOLLOW_11_in_ruleTestscript213);
+
+ newLeafNode(otherlv_0, grammarAccess.getTestscriptAccess().getFsmtestKeyword_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:123:1: ( (lv_name_1_0= RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:124:1: (lv_name_1_0= RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:124:1: (lv_name_1_0= RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:125:3: lv_name_1_0= RULE_ID
+ {
+ lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTestscript230);
+
+ newLeafNode(lv_name_1_0, grammarAccess.getTestscriptAccess().getNameIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTestscriptRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_1_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:141:2: ( (lv_stateDeclaration_2_0= ruleStateDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:142:1: (lv_stateDeclaration_2_0= ruleStateDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:142:1: (lv_stateDeclaration_2_0= ruleStateDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:143:3: lv_stateDeclaration_2_0= ruleStateDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTestscriptAccess().getStateDeclarationStateDeclarationParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleStateDeclaration_in_ruleTestscript256);
+ lv_stateDeclaration_2_0=ruleStateDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ set(
+ current,
+ "stateDeclaration",
+ lv_stateDeclaration_2_0,
+ "StateDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:159:2: ( (lv_initialDeclaration_3_0= ruleInitialDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:160:1: (lv_initialDeclaration_3_0= ruleInitialDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:160:1: (lv_initialDeclaration_3_0= ruleInitialDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:161:3: lv_initialDeclaration_3_0= ruleInitialDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTestscriptAccess().getInitialDeclarationInitialDeclarationParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleInitialDeclaration_in_ruleTestscript277);
+ lv_initialDeclaration_3_0=ruleInitialDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ set(
+ current,
+ "initialDeclaration",
+ lv_initialDeclaration_3_0,
+ "InitialDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:177:2: ( (lv_loopsDeclaration_4_0= ruleLoopsDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:178:1: (lv_loopsDeclaration_4_0= ruleLoopsDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:178:1: (lv_loopsDeclaration_4_0= ruleLoopsDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:179:3: lv_loopsDeclaration_4_0= ruleLoopsDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTestscriptAccess().getLoopsDeclarationLoopsDeclarationParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleLoopsDeclaration_in_ruleTestscript298);
+ lv_loopsDeclaration_4_0=ruleLoopsDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ set(
+ current,
+ "loopsDeclaration",
+ lv_loopsDeclaration_4_0,
+ "LoopsDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:195:2: ( (lv_seedDeclaration_5_0= ruleSeedDeclaration ) )?
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==17) ) {
+ alt2=1;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:196:1: (lv_seedDeclaration_5_0= ruleSeedDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:196:1: (lv_seedDeclaration_5_0= ruleSeedDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:197:3: lv_seedDeclaration_5_0= ruleSeedDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTestscriptAccess().getSeedDeclarationSeedDeclarationParserRuleCall_5_0());
+
+ pushFollow(FOLLOW_ruleSeedDeclaration_in_ruleTestscript319);
+ lv_seedDeclaration_5_0=ruleSeedDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ set(
+ current,
+ "seedDeclaration",
+ lv_seedDeclaration_5_0,
+ "SeedDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:213:3: ( (lv_transitionDeclarations_6_0= ruleTransitionDeclaration ) )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==RULE_ID) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:214:1: (lv_transitionDeclarations_6_0= ruleTransitionDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:214:1: (lv_transitionDeclarations_6_0= ruleTransitionDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:215:3: lv_transitionDeclarations_6_0= ruleTransitionDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTestscriptAccess().getTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleTransitionDeclaration_in_ruleTestscript341);
+ lv_transitionDeclarations_6_0=ruleTransitionDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTestscriptRule());
+ }
+ add(
+ current,
+ "transitionDeclarations",
+ lv_transitionDeclarations_6_0,
+ "TransitionDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+ otherlv_7=(Token)match(input,12,FOLLOW_12_in_ruleTestscript354);
+
+ newLeafNode(otherlv_7, grammarAccess.getTestscriptAccess().getSemicolonKeyword_7());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTestscript"
+
+
+ // $ANTLR start "entryRuleState"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:243: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.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:244:2: (iv_ruleState= ruleState EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:245:2: iv_ruleState= ruleState EOF
+ {
+ newCompositeNode(grammarAccess.getStateRule());
+ pushFollow(FOLLOW_ruleState_in_entryRuleState390);
+ iv_ruleState=ruleState();
+
+ state._fsp--;
+
+ current =iv_ruleState;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleState400);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleState"
+
+
+ // $ANTLR start "ruleState"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:252:1: ruleState returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ;
+ public final EObject ruleState() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:255:28: ( ( (lv_name_0_0= RULE_ID ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:256:1: ( (lv_name_0_0= RULE_ID ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:256:1: ( (lv_name_0_0= RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:257:1: (lv_name_0_0= RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:257:1: (lv_name_0_0= RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:258:3: lv_name_0_0= RULE_ID
+ {
+ lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleState441);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleState"
+
+
+ // $ANTLR start "entryRuleStateDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:282:1: entryRuleStateDeclaration returns [EObject current=null] : iv_ruleStateDeclaration= ruleStateDeclaration EOF ;
+ public final EObject entryRuleStateDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleStateDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:283:2: (iv_ruleStateDeclaration= ruleStateDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:284:2: iv_ruleStateDeclaration= ruleStateDeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getStateDeclarationRule());
+ pushFollow(FOLLOW_ruleStateDeclaration_in_entryRuleStateDeclaration481);
+ iv_ruleStateDeclaration=ruleStateDeclaration();
+
+ state._fsp--;
+
+ current =iv_ruleStateDeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStateDeclaration491);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStateDeclaration"
+
+
+ // $ANTLR start "ruleStateDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:291:1: ruleStateDeclaration returns [EObject current=null] : (otherlv_0= 'states:' ( (lv_states_1_0= ruleState ) ) (otherlv_2= ',' ( (lv_states_3_0= ruleState ) ) )* ) ;
+ public final EObject ruleStateDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ EObject lv_states_1_0 = null;
+
+ EObject lv_states_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:294:28: ( (otherlv_0= 'states:' ( (lv_states_1_0= ruleState ) ) (otherlv_2= ',' ( (lv_states_3_0= ruleState ) ) )* ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:295:1: (otherlv_0= 'states:' ( (lv_states_1_0= ruleState ) ) (otherlv_2= ',' ( (lv_states_3_0= ruleState ) ) )* )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:295:1: (otherlv_0= 'states:' ( (lv_states_1_0= ruleState ) ) (otherlv_2= ',' ( (lv_states_3_0= ruleState ) ) )* )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:295:3: otherlv_0= 'states:' ( (lv_states_1_0= ruleState ) ) (otherlv_2= ',' ( (lv_states_3_0= ruleState ) ) )*
+ {
+ otherlv_0=(Token)match(input,13,FOLLOW_13_in_ruleStateDeclaration528);
+
+ newLeafNode(otherlv_0, grammarAccess.getStateDeclarationAccess().getStatesKeyword_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:299:1: ( (lv_states_1_0= ruleState ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:300:1: (lv_states_1_0= ruleState )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:300:1: (lv_states_1_0= ruleState )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:301:3: lv_states_1_0= ruleState
+ {
+
+ newCompositeNode(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleState_in_ruleStateDeclaration549);
+ lv_states_1_0=ruleState();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStateDeclarationRule());
+ }
+ add(
+ current,
+ "states",
+ lv_states_1_0,
+ "State");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:317:2: (otherlv_2= ',' ( (lv_states_3_0= ruleState ) ) )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==14) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:317:4: otherlv_2= ',' ( (lv_states_3_0= ruleState ) )
+ {
+ otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleStateDeclaration562);
+
+ newLeafNode(otherlv_2, grammarAccess.getStateDeclarationAccess().getCommaKeyword_2_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:321:1: ( (lv_states_3_0= ruleState ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:322:1: (lv_states_3_0= ruleState )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:322:1: (lv_states_3_0= ruleState )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:323:3: lv_states_3_0= ruleState
+ {
+
+ newCompositeNode(grammarAccess.getStateDeclarationAccess().getStatesStateParserRuleCall_2_1_0());
+
+ pushFollow(FOLLOW_ruleState_in_ruleStateDeclaration583);
+ lv_states_3_0=ruleState();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStateDeclarationRule());
+ }
+ add(
+ current,
+ "states",
+ lv_states_3_0,
+ "State");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStateDeclaration"
+
+
+ // $ANTLR start "entryRuleInitialDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:347:1: entryRuleInitialDeclaration returns [EObject current=null] : iv_ruleInitialDeclaration= ruleInitialDeclaration EOF ;
+ public final EObject entryRuleInitialDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleInitialDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:348:2: (iv_ruleInitialDeclaration= ruleInitialDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:349:2: iv_ruleInitialDeclaration= ruleInitialDeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getInitialDeclarationRule());
+ pushFollow(FOLLOW_ruleInitialDeclaration_in_entryRuleInitialDeclaration621);
+ iv_ruleInitialDeclaration=ruleInitialDeclaration();
+
+ state._fsp--;
+
+ current =iv_ruleInitialDeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleInitialDeclaration631);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleInitialDeclaration"
+
+
+ // $ANTLR start "ruleInitialDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:356:1: ruleInitialDeclaration returns [EObject current=null] : (otherlv_0= 'initial:' ( (otherlv_1= RULE_ID ) ) ) ;
+ public final EObject ruleInitialDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:359:28: ( (otherlv_0= 'initial:' ( (otherlv_1= RULE_ID ) ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:360:1: (otherlv_0= 'initial:' ( (otherlv_1= RULE_ID ) ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:360:1: (otherlv_0= 'initial:' ( (otherlv_1= RULE_ID ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:360:3: otherlv_0= 'initial:' ( (otherlv_1= RULE_ID ) )
+ {
+ otherlv_0=(Token)match(input,15,FOLLOW_15_in_ruleInitialDeclaration668);
+
+ newLeafNode(otherlv_0, grammarAccess.getInitialDeclarationAccess().getInitialKeyword_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:364:1: ( (otherlv_1= RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:365:1: (otherlv_1= RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:365:1: (otherlv_1= RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:366:3: otherlv_1= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getInitialDeclarationRule());
+ }
+
+ otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInitialDeclaration688);
+
+ newLeafNode(otherlv_1, grammarAccess.getInitialDeclarationAccess().getInitialStateCrossReference_1_0());
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleInitialDeclaration"
+
+
+ // $ANTLR start "entryRuleLoopsDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:385:1: entryRuleLoopsDeclaration returns [EObject current=null] : iv_ruleLoopsDeclaration= ruleLoopsDeclaration EOF ;
+ public final EObject entryRuleLoopsDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLoopsDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:386:2: (iv_ruleLoopsDeclaration= ruleLoopsDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:387:2: iv_ruleLoopsDeclaration= ruleLoopsDeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getLoopsDeclarationRule());
+ pushFollow(FOLLOW_ruleLoopsDeclaration_in_entryRuleLoopsDeclaration724);
+ iv_ruleLoopsDeclaration=ruleLoopsDeclaration();
+
+ state._fsp--;
+
+ current =iv_ruleLoopsDeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLoopsDeclaration734);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLoopsDeclaration"
+
+
+ // $ANTLR start "ruleLoopsDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:394:1: ruleLoopsDeclaration returns [EObject current=null] : (otherlv_0= 'loops:' ( (lv_val_1_0= RULE_INT ) ) ) ;
+ public final EObject ruleLoopsDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_val_1_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:397:28: ( (otherlv_0= 'loops:' ( (lv_val_1_0= RULE_INT ) ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:398:1: (otherlv_0= 'loops:' ( (lv_val_1_0= RULE_INT ) ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:398:1: (otherlv_0= 'loops:' ( (lv_val_1_0= RULE_INT ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:398:3: otherlv_0= 'loops:' ( (lv_val_1_0= RULE_INT ) )
+ {
+ otherlv_0=(Token)match(input,16,FOLLOW_16_in_ruleLoopsDeclaration771);
+
+ newLeafNode(otherlv_0, grammarAccess.getLoopsDeclarationAccess().getLoopsKeyword_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:402:1: ( (lv_val_1_0= RULE_INT ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:403:1: (lv_val_1_0= RULE_INT )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:403:1: (lv_val_1_0= RULE_INT )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:404:3: lv_val_1_0= RULE_INT
+ {
+ lv_val_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleLoopsDeclaration788);
+
+ newLeafNode(lv_val_1_0, grammarAccess.getLoopsDeclarationAccess().getValINTTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getLoopsDeclarationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "val",
+ lv_val_1_0,
+ "INT");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLoopsDeclaration"
+
+
+ // $ANTLR start "entryRuleSeedDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:428:1: entryRuleSeedDeclaration returns [EObject current=null] : iv_ruleSeedDeclaration= ruleSeedDeclaration EOF ;
+ public final EObject entryRuleSeedDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSeedDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:429:2: (iv_ruleSeedDeclaration= ruleSeedDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:430:2: iv_ruleSeedDeclaration= ruleSeedDeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getSeedDeclarationRule());
+ pushFollow(FOLLOW_ruleSeedDeclaration_in_entryRuleSeedDeclaration829);
+ iv_ruleSeedDeclaration=ruleSeedDeclaration();
+
+ state._fsp--;
+
+ current =iv_ruleSeedDeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSeedDeclaration839);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSeedDeclaration"
+
+
+ // $ANTLR start "ruleSeedDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:437:1: ruleSeedDeclaration returns [EObject current=null] : (otherlv_0= 'randseed:' ( (lv_val_1_0= RULE_INT ) ) ) ;
+ public final EObject ruleSeedDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_val_1_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:440:28: ( (otherlv_0= 'randseed:' ( (lv_val_1_0= RULE_INT ) ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:441:1: (otherlv_0= 'randseed:' ( (lv_val_1_0= RULE_INT ) ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:441:1: (otherlv_0= 'randseed:' ( (lv_val_1_0= RULE_INT ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:441:3: otherlv_0= 'randseed:' ( (lv_val_1_0= RULE_INT ) )
+ {
+ otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleSeedDeclaration876);
+
+ newLeafNode(otherlv_0, grammarAccess.getSeedDeclarationAccess().getRandseedKeyword_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:445:1: ( (lv_val_1_0= RULE_INT ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:446:1: (lv_val_1_0= RULE_INT )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:446:1: (lv_val_1_0= RULE_INT )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:447:3: lv_val_1_0= RULE_INT
+ {
+ lv_val_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSeedDeclaration893);
+
+ newLeafNode(lv_val_1_0, grammarAccess.getSeedDeclarationAccess().getValINTTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSeedDeclarationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "val",
+ lv_val_1_0,
+ "INT");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSeedDeclaration"
+
+
+ // $ANTLR start "entryRuleSignalDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:471:1: entryRuleSignalDeclaration returns [EObject current=null] : iv_ruleSignalDeclaration= ruleSignalDeclaration EOF ;
+ public final EObject entryRuleSignalDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSignalDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:472:2: (iv_ruleSignalDeclaration= ruleSignalDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:473:2: iv_ruleSignalDeclaration= ruleSignalDeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getSignalDeclarationRule());
+ pushFollow(FOLLOW_ruleSignalDeclaration_in_entryRuleSignalDeclaration934);
+ iv_ruleSignalDeclaration=ruleSignalDeclaration();
+
+ state._fsp--;
+
+ current =iv_ruleSignalDeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSignalDeclaration944);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSignalDeclaration"
+
+
+ // $ANTLR start "ruleSignalDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:480:1: ruleSignalDeclaration returns [EObject current=null] : ( ( ( (lv_port_0_0= RULE_ID ) ) otherlv_1= '.' )? ( (lv_signame_2_0= RULE_ID ) ) ( (otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) ) ) | (otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) ) ) )? ) ;
+ public final EObject ruleSignalDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_port_0_0=null;
+ Token otherlv_1=null;
+ Token lv_signame_2_0=null;
+ Token otherlv_3=null;
+ Token lv_intVal_4_0=null;
+ Token otherlv_5=null;
+ Token lv_strVal_6_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:483:28: ( ( ( ( (lv_port_0_0= RULE_ID ) ) otherlv_1= '.' )? ( (lv_signame_2_0= RULE_ID ) ) ( (otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) ) ) | (otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) ) ) )? ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:484:1: ( ( ( (lv_port_0_0= RULE_ID ) ) otherlv_1= '.' )? ( (lv_signame_2_0= RULE_ID ) ) ( (otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) ) ) | (otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) ) ) )? )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:484:1: ( ( ( (lv_port_0_0= RULE_ID ) ) otherlv_1= '.' )? ( (lv_signame_2_0= RULE_ID ) ) ( (otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) ) ) | (otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) ) ) )? )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:484:2: ( ( (lv_port_0_0= RULE_ID ) ) otherlv_1= '.' )? ( (lv_signame_2_0= RULE_ID ) ) ( (otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) ) ) | (otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) ) ) )?
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:484:2: ( ( (lv_port_0_0= RULE_ID ) ) otherlv_1= '.' )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_ID) ) {
+ int LA5_1 = input.LA(2);
+
+ if ( (LA5_1==18) ) {
+ alt5=1;
+ }
+ }
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:484:3: ( (lv_port_0_0= RULE_ID ) ) otherlv_1= '.'
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:484:3: ( (lv_port_0_0= RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:485:1: (lv_port_0_0= RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:485:1: (lv_port_0_0= RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:486:3: lv_port_0_0= RULE_ID
+ {
+ lv_port_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSignalDeclaration987);
+
+ newLeafNode(lv_port_0_0, grammarAccess.getSignalDeclarationAccess().getPortIDTerminalRuleCall_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSignalDeclarationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "port",
+ lv_port_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleSignalDeclaration1004);
+
+ newLeafNode(otherlv_1, grammarAccess.getSignalDeclarationAccess().getFullStopKeyword_0_1());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:506:3: ( (lv_signame_2_0= RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:507:1: (lv_signame_2_0= RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:507:1: (lv_signame_2_0= RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:508:3: lv_signame_2_0= RULE_ID
+ {
+ lv_signame_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSignalDeclaration1023);
+
+ newLeafNode(lv_signame_2_0, grammarAccess.getSignalDeclarationAccess().getSignameIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSignalDeclarationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "signame",
+ lv_signame_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:524:2: ( (otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) ) ) | (otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) ) ) )?
+ int alt6=3;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==19) ) {
+ int LA6_1 = input.LA(2);
+
+ if ( (LA6_1==RULE_INT) ) {
+ alt6=1;
+ }
+ else if ( (LA6_1==RULE_STRING) ) {
+ alt6=2;
+ }
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:524:3: (otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:524:3: (otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:524:5: otherlv_3= '=' ( (lv_intVal_4_0= RULE_INT ) )
+ {
+ otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleSignalDeclaration1042);
+
+ newLeafNode(otherlv_3, grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_0_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:528:1: ( (lv_intVal_4_0= RULE_INT ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:529:1: (lv_intVal_4_0= RULE_INT )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:529:1: (lv_intVal_4_0= RULE_INT )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:530:3: lv_intVal_4_0= RULE_INT
+ {
+ lv_intVal_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSignalDeclaration1059);
+
+ newLeafNode(lv_intVal_4_0, grammarAccess.getSignalDeclarationAccess().getIntValINTTerminalRuleCall_2_0_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSignalDeclarationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "intVal",
+ lv_intVal_4_0,
+ "INT");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:547:6: (otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:547:6: (otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:547:8: otherlv_5= '=' ( (lv_strVal_6_0= RULE_STRING ) )
+ {
+ otherlv_5=(Token)match(input,19,FOLLOW_19_in_ruleSignalDeclaration1084);
+
+ newLeafNode(otherlv_5, grammarAccess.getSignalDeclarationAccess().getEqualsSignKeyword_2_1_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:551:1: ( (lv_strVal_6_0= RULE_STRING ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:552:1: (lv_strVal_6_0= RULE_STRING )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:552:1: (lv_strVal_6_0= RULE_STRING )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:553:3: lv_strVal_6_0= RULE_STRING
+ {
+ lv_strVal_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSignalDeclaration1101);
+
+ newLeafNode(lv_strVal_6_0, grammarAccess.getSignalDeclarationAccess().getStrValSTRINGTerminalRuleCall_2_1_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSignalDeclarationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "strVal",
+ lv_strVal_6_0,
+ "STRING");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSignalDeclaration"
+
+
+ // $ANTLR start "entryRuleSourceDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:577:1: entryRuleSourceDeclaration returns [EObject current=null] : iv_ruleSourceDeclaration= ruleSourceDeclaration EOF ;
+ public final EObject entryRuleSourceDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSourceDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:578:2: (iv_ruleSourceDeclaration= ruleSourceDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:579:2: iv_ruleSourceDeclaration= ruleSourceDeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getSourceDeclarationRule());
+ pushFollow(FOLLOW_ruleSourceDeclaration_in_entryRuleSourceDeclaration1145);
+ iv_ruleSourceDeclaration=ruleSourceDeclaration();
+
+ state._fsp--;
+
+ current =iv_ruleSourceDeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSourceDeclaration1155);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSourceDeclaration"
+
+
+ // $ANTLR start "ruleSourceDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:586:1: ruleSourceDeclaration returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= ':' ) ;
+ public final EObject ruleSourceDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:589:28: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= ':' ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:590:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= ':' )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:590:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= ':' )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:590:2: ( (otherlv_0= RULE_ID ) ) otherlv_1= ':'
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:590:2: ( (otherlv_0= RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:591:1: (otherlv_0= RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:591:1: (otherlv_0= RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:592:3: otherlv_0= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSourceDeclarationRule());
+ }
+
+ otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSourceDeclaration1200);
+
+ newLeafNode(otherlv_0, grammarAccess.getSourceDeclarationAccess().getRefStateCrossReference_0_0());
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,20,FOLLOW_20_in_ruleSourceDeclaration1212);
+
+ newLeafNode(otherlv_1, grammarAccess.getSourceDeclarationAccess().getColonKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSourceDeclaration"
+
+
+ // $ANTLR start "entryRuleDestinationDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:615:1: entryRuleDestinationDeclaration returns [EObject current=null] : iv_ruleDestinationDeclaration= ruleDestinationDeclaration EOF ;
+ public final EObject entryRuleDestinationDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleDestinationDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:616:2: (iv_ruleDestinationDeclaration= ruleDestinationDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:617:2: iv_ruleDestinationDeclaration= ruleDestinationDeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getDestinationDeclarationRule());
+ pushFollow(FOLLOW_ruleDestinationDeclaration_in_entryRuleDestinationDeclaration1248);
+ iv_ruleDestinationDeclaration=ruleDestinationDeclaration();
+
+ state._fsp--;
+
+ current =iv_ruleDestinationDeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleDestinationDeclaration1258);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleDestinationDeclaration"
+
+
+ // $ANTLR start "ruleDestinationDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:624:1: ruleDestinationDeclaration returns [EObject current=null] : (otherlv_0= '-> ' ( (otherlv_1= RULE_ID ) ) ) ;
+ public final EObject ruleDestinationDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:627:28: ( (otherlv_0= '-> ' ( (otherlv_1= RULE_ID ) ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:628:1: (otherlv_0= '-> ' ( (otherlv_1= RULE_ID ) ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:628:1: (otherlv_0= '-> ' ( (otherlv_1= RULE_ID ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:628:3: otherlv_0= '-> ' ( (otherlv_1= RULE_ID ) )
+ {
+ otherlv_0=(Token)match(input,21,FOLLOW_21_in_ruleDestinationDeclaration1295);
+
+ newLeafNode(otherlv_0, grammarAccess.getDestinationDeclarationAccess().getHyphenMinusGreaterThanSignSpaceKeyword_0());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:632:1: ( (otherlv_1= RULE_ID ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:633:1: (otherlv_1= RULE_ID )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:633:1: (otherlv_1= RULE_ID )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:634:3: otherlv_1= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getDestinationDeclarationRule());
+ }
+
+ otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDestinationDeclaration1315);
+
+ newLeafNode(otherlv_1, grammarAccess.getDestinationDeclarationAccess().getRefStateCrossReference_1_0());
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleDestinationDeclaration"
+
+
+ // $ANTLR start "entryRuleTransitionDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:653:1: entryRuleTransitionDeclaration returns [EObject current=null] : iv_ruleTransitionDeclaration= ruleTransitionDeclaration EOF ;
+ public final EObject entryRuleTransitionDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTransitionDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:654:2: (iv_ruleTransitionDeclaration= ruleTransitionDeclaration EOF )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:655:2: iv_ruleTransitionDeclaration= ruleTransitionDeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getTransitionDeclarationRule());
+ pushFollow(FOLLOW_ruleTransitionDeclaration_in_entryRuleTransitionDeclaration1351);
+ iv_ruleTransitionDeclaration=ruleTransitionDeclaration();
+
+ state._fsp--;
+
+ current =iv_ruleTransitionDeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionDeclaration1361);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTransitionDeclaration"
+
+
+ // $ANTLR start "ruleTransitionDeclaration"
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:662:1: ruleTransitionDeclaration returns [EObject current=null] : ( ( (lv_source_0_0= ruleSourceDeclaration ) ) otherlv_1= 'in:' ( (lv_in_2_0= ruleSignalDeclaration ) )* otherlv_3= 'out:' ( (lv_out_4_0= ruleSignalDeclaration ) )* ( (lv_destination_5_0= ruleDestinationDeclaration ) ) ) ;
+ public final EObject ruleTransitionDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ EObject lv_source_0_0 = null;
+
+ EObject lv_in_2_0 = null;
+
+ EObject lv_out_4_0 = null;
+
+ EObject lv_destination_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:665:28: ( ( ( (lv_source_0_0= ruleSourceDeclaration ) ) otherlv_1= 'in:' ( (lv_in_2_0= ruleSignalDeclaration ) )* otherlv_3= 'out:' ( (lv_out_4_0= ruleSignalDeclaration ) )* ( (lv_destination_5_0= ruleDestinationDeclaration ) ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:666:1: ( ( (lv_source_0_0= ruleSourceDeclaration ) ) otherlv_1= 'in:' ( (lv_in_2_0= ruleSignalDeclaration ) )* otherlv_3= 'out:' ( (lv_out_4_0= ruleSignalDeclaration ) )* ( (lv_destination_5_0= ruleDestinationDeclaration ) ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:666:1: ( ( (lv_source_0_0= ruleSourceDeclaration ) ) otherlv_1= 'in:' ( (lv_in_2_0= ruleSignalDeclaration ) )* otherlv_3= 'out:' ( (lv_out_4_0= ruleSignalDeclaration ) )* ( (lv_destination_5_0= ruleDestinationDeclaration ) ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:666:2: ( (lv_source_0_0= ruleSourceDeclaration ) ) otherlv_1= 'in:' ( (lv_in_2_0= ruleSignalDeclaration ) )* otherlv_3= 'out:' ( (lv_out_4_0= ruleSignalDeclaration ) )* ( (lv_destination_5_0= ruleDestinationDeclaration ) )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:666:2: ( (lv_source_0_0= ruleSourceDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:667:1: (lv_source_0_0= ruleSourceDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:667:1: (lv_source_0_0= ruleSourceDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:668:3: lv_source_0_0= ruleSourceDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTransitionDeclarationAccess().getSourceSourceDeclarationParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleSourceDeclaration_in_ruleTransitionDeclaration1407);
+ lv_source_0_0=ruleSourceDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTransitionDeclarationRule());
+ }
+ set(
+ current,
+ "source",
+ lv_source_0_0,
+ "SourceDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,22,FOLLOW_22_in_ruleTransitionDeclaration1419);
+
+ newLeafNode(otherlv_1, grammarAccess.getTransitionDeclarationAccess().getInKeyword_1());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:688:1: ( (lv_in_2_0= ruleSignalDeclaration ) )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==RULE_ID) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:689:1: (lv_in_2_0= ruleSignalDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:689:1: (lv_in_2_0= ruleSignalDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:690:3: lv_in_2_0= ruleSignalDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTransitionDeclarationAccess().getInSignalDeclarationParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleSignalDeclaration_in_ruleTransitionDeclaration1440);
+ lv_in_2_0=ruleSignalDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTransitionDeclarationRule());
+ }
+ add(
+ current,
+ "in",
+ lv_in_2_0,
+ "SignalDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ otherlv_3=(Token)match(input,23,FOLLOW_23_in_ruleTransitionDeclaration1453);
+
+ newLeafNode(otherlv_3, grammarAccess.getTransitionDeclarationAccess().getOutKeyword_3());
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:710:1: ( (lv_out_4_0= ruleSignalDeclaration ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==RULE_ID) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:711:1: (lv_out_4_0= ruleSignalDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:711:1: (lv_out_4_0= ruleSignalDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:712:3: lv_out_4_0= ruleSignalDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTransitionDeclarationAccess().getOutSignalDeclarationParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleSignalDeclaration_in_ruleTransitionDeclaration1474);
+ lv_out_4_0=ruleSignalDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTransitionDeclarationRule());
+ }
+ add(
+ current,
+ "out",
+ lv_out_4_0,
+ "SignalDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:728:3: ( (lv_destination_5_0= ruleDestinationDeclaration ) )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:729:1: (lv_destination_5_0= ruleDestinationDeclaration )
+ {
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:729:1: (lv_destination_5_0= ruleDestinationDeclaration )
+ // ../org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/parser/antlr/internal/InternalFSMtest.g:730:3: lv_destination_5_0= ruleDestinationDeclaration
+ {
+
+ newCompositeNode(grammarAccess.getTransitionDeclarationAccess().getDestinationDestinationDeclarationParserRuleCall_5_0());
+
+ pushFollow(FOLLOW_ruleDestinationDeclaration_in_ruleTransitionDeclaration1496);
+ lv_destination_5_0=ruleDestinationDeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTransitionDeclarationRule());
+ }
+ set(
+ current,
+ "destination",
+ lv_destination_5_0,
+ "DestinationDeclaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTransitionDeclaration"
+
+ // Delegated rules
+
+
+
+
+ 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_ruleTestscript_in_ruleModel130 = new BitSet(new long[]{0x0000000000000802L});
+ public static final BitSet FOLLOW_ruleTestscript_in_entryRuleTestscript166 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTestscript176 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_ruleTestscript213 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleTestscript230 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_ruleStateDeclaration_in_ruleTestscript256 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_ruleInitialDeclaration_in_ruleTestscript277 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_ruleLoopsDeclaration_in_ruleTestscript298 = new BitSet(new long[]{0x0000000000021010L});
+ public static final BitSet FOLLOW_ruleSeedDeclaration_in_ruleTestscript319 = new BitSet(new long[]{0x0000000000001010L});
+ public static final BitSet FOLLOW_ruleTransitionDeclaration_in_ruleTestscript341 = new BitSet(new long[]{0x0000000000001010L});
+ public static final BitSet FOLLOW_12_in_ruleTestscript354 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_entryRuleState390 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleState400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleState441 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStateDeclaration_in_entryRuleStateDeclaration481 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStateDeclaration491 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_ruleStateDeclaration528 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleState_in_ruleStateDeclaration549 = new BitSet(new long[]{0x0000000000004002L});
+ public static final BitSet FOLLOW_14_in_ruleStateDeclaration562 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleState_in_ruleStateDeclaration583 = new BitSet(new long[]{0x0000000000004002L});
+ public static final BitSet FOLLOW_ruleInitialDeclaration_in_entryRuleInitialDeclaration621 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleInitialDeclaration631 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_ruleInitialDeclaration668 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleInitialDeclaration688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLoopsDeclaration_in_entryRuleLoopsDeclaration724 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLoopsDeclaration734 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_ruleLoopsDeclaration771 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleLoopsDeclaration788 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSeedDeclaration_in_entryRuleSeedDeclaration829 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSeedDeclaration839 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_ruleSeedDeclaration876 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleSeedDeclaration893 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSignalDeclaration_in_entryRuleSignalDeclaration934 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSignalDeclaration944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSignalDeclaration987 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_18_in_ruleSignalDeclaration1004 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSignalDeclaration1023 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleSignalDeclaration1042 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleSignalDeclaration1059 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_ruleSignalDeclaration1084 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleSignalDeclaration1101 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSourceDeclaration_in_entryRuleSourceDeclaration1145 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSourceDeclaration1155 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSourceDeclaration1200 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_20_in_ruleSourceDeclaration1212 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleDestinationDeclaration_in_entryRuleDestinationDeclaration1248 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleDestinationDeclaration1258 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_21_in_ruleDestinationDeclaration1295 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleDestinationDeclaration1315 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransitionDeclaration_in_entryRuleTransitionDeclaration1351 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTransitionDeclaration1361 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSourceDeclaration_in_ruleTransitionDeclaration1407 = new BitSet(new long[]{0x0000000000400000L});
+ public static final BitSet FOLLOW_22_in_ruleTransitionDeclaration1419 = new BitSet(new long[]{0x0000000000800010L});
+ public static final BitSet FOLLOW_ruleSignalDeclaration_in_ruleTransitionDeclaration1440 = new BitSet(new long[]{0x0000000000800010L});
+ public static final BitSet FOLLOW_23_in_ruleTransitionDeclaration1453 = new BitSet(new long[]{0x0000000000200010L});
+ public static final BitSet FOLLOW_ruleSignalDeclaration_in_ruleTransitionDeclaration1474 = new BitSet(new long[]{0x0000000000200010L});
+ public static final BitSet FOLLOW_ruleDestinationDeclaration_in_ruleTransitionDeclaration1496 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/serializer/FSMtestSemanticSequencer.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/serializer/FSMtestSemanticSequencer.java
new file mode 100644
index 000000000..4ae60bf89
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/serializer/FSMtestSemanticSequencer.java
@@ -0,0 +1,254 @@
+package org.eclipse.etrice.generator.serializer;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.etrice.generator.fsmtest.DestinationDeclaration;
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.InitialDeclaration;
+import org.eclipse.etrice.generator.fsmtest.LoopsDeclaration;
+import org.eclipse.etrice.generator.fsmtest.Model;
+import org.eclipse.etrice.generator.fsmtest.SeedDeclaration;
+import org.eclipse.etrice.generator.fsmtest.SignalDeclaration;
+import org.eclipse.etrice.generator.fsmtest.SourceDeclaration;
+import org.eclipse.etrice.generator.fsmtest.State;
+import org.eclipse.etrice.generator.fsmtest.StateDeclaration;
+import org.eclipse.etrice.generator.fsmtest.Testscript;
+import org.eclipse.etrice.generator.fsmtest.TransitionDeclaration;
+import org.eclipse.etrice.generator.services.FSMtestGrammarAccess;
+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.AbstractDelegatingSemanticSequencer;
+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("all")
+public class FSMtestSemanticSequencer extends AbstractDelegatingSemanticSequencer {
+
+ @Inject
+ private FSMtestGrammarAccess grammarAccess;
+
+ public void createSequence(EObject context, EObject semanticObject) {
+ if(semanticObject.eClass().getEPackage() == FsmtestPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+ case FsmtestPackage.DESTINATION_DECLARATION:
+ if(context == grammarAccess.getDestinationDeclarationRule()) {
+ sequence_DestinationDeclaration(context, (DestinationDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.INITIAL_DECLARATION:
+ if(context == grammarAccess.getInitialDeclarationRule()) {
+ sequence_InitialDeclaration(context, (InitialDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.LOOPS_DECLARATION:
+ if(context == grammarAccess.getLoopsDeclarationRule()) {
+ sequence_LoopsDeclaration(context, (LoopsDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.MODEL:
+ if(context == grammarAccess.getModelRule()) {
+ sequence_Model(context, (Model) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.SEED_DECLARATION:
+ if(context == grammarAccess.getSeedDeclarationRule()) {
+ sequence_SeedDeclaration(context, (SeedDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.SIGNAL_DECLARATION:
+ if(context == grammarAccess.getSignalDeclarationRule()) {
+ sequence_SignalDeclaration(context, (SignalDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.SOURCE_DECLARATION:
+ if(context == grammarAccess.getSourceDeclarationRule()) {
+ sequence_SourceDeclaration(context, (SourceDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.STATE:
+ if(context == grammarAccess.getStateRule()) {
+ sequence_State(context, (State) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.STATE_DECLARATION:
+ if(context == grammarAccess.getStateDeclarationRule()) {
+ sequence_StateDeclaration(context, (StateDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.TESTSCRIPT:
+ if(context == grammarAccess.getTestscriptRule()) {
+ sequence_Testscript(context, (Testscript) semanticObject);
+ return;
+ }
+ else break;
+ case FsmtestPackage.TRANSITION_DECLARATION:
+ if(context == grammarAccess.getTransitionDeclarationRule()) {
+ sequence_TransitionDeclaration(context, (TransitionDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ }
+ if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+ }
+
+ /**
+ * Constraint:
+ * ref=[State|ID]
+ */
+ protected void sequence_DestinationDeclaration(EObject context, DestinationDeclaration semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, FsmtestPackage.Literals.DESTINATION_DECLARATION__REF) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FsmtestPackage.Literals.DESTINATION_DECLARATION__REF));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getDestinationDeclarationAccess().getRefStateIDTerminalRuleCall_1_0_1(), semanticObject.getRef());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * initial=[State|ID]
+ */
+ protected void sequence_InitialDeclaration(EObject context, InitialDeclaration semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, FsmtestPackage.Literals.INITIAL_DECLARATION__INITIAL) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FsmtestPackage.Literals.INITIAL_DECLARATION__INITIAL));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getInitialDeclarationAccess().getInitialStateIDTerminalRuleCall_1_0_1(), semanticObject.getInitial());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * val=INT
+ */
+ protected void sequence_LoopsDeclaration(EObject context, LoopsDeclaration semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, FsmtestPackage.Literals.LOOPS_DECLARATION__VAL) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FsmtestPackage.Literals.LOOPS_DECLARATION__VAL));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getLoopsDeclarationAccess().getValINTTerminalRuleCall_1_0(), semanticObject.getVal());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * Testscripts+=Testscript*
+ */
+ protected void sequence_Model(EObject context, Model semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * val=INT
+ */
+ protected void sequence_SeedDeclaration(EObject context, SeedDeclaration semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, FsmtestPackage.Literals.SEED_DECLARATION__VAL) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FsmtestPackage.Literals.SEED_DECLARATION__VAL));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getSeedDeclarationAccess().getValINTTerminalRuleCall_1_0(), semanticObject.getVal());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (port=ID? signame=ID (intVal=INT | strVal=STRING)?)
+ */
+ protected void sequence_SignalDeclaration(EObject context, SignalDeclaration semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * ref=[State|ID]
+ */
+ protected void sequence_SourceDeclaration(EObject context, SourceDeclaration semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, FsmtestPackage.Literals.SOURCE_DECLARATION__REF) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FsmtestPackage.Literals.SOURCE_DECLARATION__REF));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getSourceDeclarationAccess().getRefStateIDTerminalRuleCall_0_0_1(), semanticObject.getRef());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (states+=State states+=State*)
+ */
+ protected void sequence_StateDeclaration(EObject context, StateDeclaration semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * name=ID
+ */
+ protected void sequence_State(EObject context, State semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, FsmtestPackage.Literals.STATE__NAME) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, FsmtestPackage.Literals.STATE__NAME));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (
+ * name=ID
+ * stateDeclaration=StateDeclaration
+ * initialDeclaration=InitialDeclaration
+ * loopsDeclaration=LoopsDeclaration
+ * seedDeclaration=SeedDeclaration?
+ * transitionDeclarations+=TransitionDeclaration*
+ * )
+ */
+ protected void sequence_Testscript(EObject context, Testscript semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (source=SourceDeclaration in+=SignalDeclaration* out+=SignalDeclaration* destination=DestinationDeclaration)
+ */
+ protected void sequence_TransitionDeclaration(EObject context, TransitionDeclaration semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/serializer/FSMtestSyntacticSequencer.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/serializer/FSMtestSyntacticSequencer.java
new file mode 100644
index 000000000..185fea308
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/serializer/FSMtestSyntacticSequencer.java
@@ -0,0 +1,40 @@
+package org.eclipse.etrice.generator.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.etrice.generator.services.FSMtestGrammarAccess;
+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("all")
+public class FSMtestSyntacticSequencer extends AbstractSyntacticSequencer {
+
+ protected FSMtestGrammarAccess grammarAccess;
+
+ @Inject
+ protected void init(IGrammarAccess access) {
+ grammarAccess = (FSMtestGrammarAccess) 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/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/services/FSMtestGrammarAccess.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/services/FSMtestGrammarAccess.java
new file mode 100644
index 000000000..9390922f8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/services/FSMtestGrammarAccess.java
@@ -0,0 +1,665 @@
+/*
+* generated by Xtext
+*/
+
+package org.eclipse.etrice.generator.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.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class FSMtestGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class ModelElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Model");
+ private final Assignment cTestscriptsAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cTestscriptsTestscriptParserRuleCall_0 = (RuleCall)cTestscriptsAssignment.eContents().get(0);
+
+ //Model:
+ //
+ // Testscripts+=Testscript*;
+ public ParserRule getRule() { return rule; }
+
+ //Testscripts+=Testscript*
+ public Assignment getTestscriptsAssignment() { return cTestscriptsAssignment; }
+
+ //Testscript
+ public RuleCall getTestscriptsTestscriptParserRuleCall_0() { return cTestscriptsTestscriptParserRuleCall_0; }
+ }
+
+ public class TestscriptElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Testscript");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cFsmtestKeyword_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 Assignment cStateDeclarationAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cStateDeclarationStateDeclarationParserRuleCall_2_0 = (RuleCall)cStateDeclarationAssignment_2.eContents().get(0);
+ private final Assignment cInitialDeclarationAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cInitialDeclarationInitialDeclarationParserRuleCall_3_0 = (RuleCall)cInitialDeclarationAssignment_3.eContents().get(0);
+ private final Assignment cLoopsDeclarationAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cLoopsDeclarationLoopsDeclarationParserRuleCall_4_0 = (RuleCall)cLoopsDeclarationAssignment_4.eContents().get(0);
+ private final Assignment cSeedDeclarationAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cSeedDeclarationSeedDeclarationParserRuleCall_5_0 = (RuleCall)cSeedDeclarationAssignment_5.eContents().get(0);
+ private final Assignment cTransitionDeclarationsAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0 = (RuleCall)cTransitionDeclarationsAssignment_6.eContents().get(0);
+ private final Keyword cSemicolonKeyword_7 = (Keyword)cGroup.eContents().get(7);
+
+ //Testscript:
+ //
+ // "fsmtest" name=ID stateDeclaration=StateDeclaration initialDeclaration=InitialDeclaration
+ //
+ // loopsDeclaration=LoopsDeclaration seedDeclaration=SeedDeclaration? transitionDeclarations+=TransitionDeclaration*
+ //
+ // ";";
+ public ParserRule getRule() { return rule; }
+
+ //"fsmtest" name=ID stateDeclaration=StateDeclaration initialDeclaration=InitialDeclaration
+ //
+ //loopsDeclaration=LoopsDeclaration seedDeclaration=SeedDeclaration? transitionDeclarations+=TransitionDeclaration* ";"
+ public Group getGroup() { return cGroup; }
+
+ //"fsmtest"
+ public Keyword getFsmtestKeyword_0() { return cFsmtestKeyword_0; }
+
+ //name=ID
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+ //stateDeclaration=StateDeclaration
+ public Assignment getStateDeclarationAssignment_2() { return cStateDeclarationAssignment_2; }
+
+ //StateDeclaration
+ public RuleCall getStateDeclarationStateDeclarationParserRuleCall_2_0() { return cStateDeclarationStateDeclarationParserRuleCall_2_0; }
+
+ //initialDeclaration=InitialDeclaration
+ public Assignment getInitialDeclarationAssignment_3() { return cInitialDeclarationAssignment_3; }
+
+ //InitialDeclaration
+ public RuleCall getInitialDeclarationInitialDeclarationParserRuleCall_3_0() { return cInitialDeclarationInitialDeclarationParserRuleCall_3_0; }
+
+ //loopsDeclaration=LoopsDeclaration
+ public Assignment getLoopsDeclarationAssignment_4() { return cLoopsDeclarationAssignment_4; }
+
+ //LoopsDeclaration
+ public RuleCall getLoopsDeclarationLoopsDeclarationParserRuleCall_4_0() { return cLoopsDeclarationLoopsDeclarationParserRuleCall_4_0; }
+
+ //seedDeclaration=SeedDeclaration?
+ public Assignment getSeedDeclarationAssignment_5() { return cSeedDeclarationAssignment_5; }
+
+ //SeedDeclaration
+ public RuleCall getSeedDeclarationSeedDeclarationParserRuleCall_5_0() { return cSeedDeclarationSeedDeclarationParserRuleCall_5_0; }
+
+ //transitionDeclarations+=TransitionDeclaration*
+ public Assignment getTransitionDeclarationsAssignment_6() { return cTransitionDeclarationsAssignment_6; }
+
+ //TransitionDeclaration
+ public RuleCall getTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0() { return cTransitionDeclarationsTransitionDeclarationParserRuleCall_6_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_7() { return cSemicolonKeyword_7; }
+ }
+
+ public class StateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "State");
+ private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
+
+ //State:
+ //
+ // name=ID;
+ public ParserRule getRule() { return rule; }
+
+ //name=ID
+ public Assignment getNameAssignment() { return cNameAssignment; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; }
+ }
+
+ public class StateDeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StateDeclaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cStatesKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cStatesAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cStatesStateParserRuleCall_1_0 = (RuleCall)cStatesAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cStatesAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cStatesStateParserRuleCall_2_1_0 = (RuleCall)cStatesAssignment_2_1.eContents().get(0);
+
+ //StateDeclaration:
+ //
+ // "states:" states+=State ("," states+=State)*;
+ public ParserRule getRule() { return rule; }
+
+ //"states:" states+=State ("," states+=State)*
+ public Group getGroup() { return cGroup; }
+
+ //"states:"
+ public Keyword getStatesKeyword_0() { return cStatesKeyword_0; }
+
+ //states+=State
+ public Assignment getStatesAssignment_1() { return cStatesAssignment_1; }
+
+ //State
+ public RuleCall getStatesStateParserRuleCall_1_0() { return cStatesStateParserRuleCall_1_0; }
+
+ //("," states+=State)*
+ public Group getGroup_2() { return cGroup_2; }
+
+ //","
+ public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
+
+ //states+=State
+ public Assignment getStatesAssignment_2_1() { return cStatesAssignment_2_1; }
+
+ //State
+ public RuleCall getStatesStateParserRuleCall_2_1_0() { return cStatesStateParserRuleCall_2_1_0; }
+ }
+
+ public class InitialDeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InitialDeclaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cInitialKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cInitialAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final CrossReference cInitialStateCrossReference_1_0 = (CrossReference)cInitialAssignment_1.eContents().get(0);
+ private final RuleCall cInitialStateIDTerminalRuleCall_1_0_1 = (RuleCall)cInitialStateCrossReference_1_0.eContents().get(1);
+
+ //InitialDeclaration:
+ //
+ // "initial:" initial=[State];
+ public ParserRule getRule() { return rule; }
+
+ //"initial:" initial=[State]
+ public Group getGroup() { return cGroup; }
+
+ //"initial:"
+ public Keyword getInitialKeyword_0() { return cInitialKeyword_0; }
+
+ //initial=[State]
+ public Assignment getInitialAssignment_1() { return cInitialAssignment_1; }
+
+ //[State]
+ public CrossReference getInitialStateCrossReference_1_0() { return cInitialStateCrossReference_1_0; }
+
+ //ID
+ public RuleCall getInitialStateIDTerminalRuleCall_1_0_1() { return cInitialStateIDTerminalRuleCall_1_0_1; }
+ }
+
+ public class LoopsDeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LoopsDeclaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cLoopsKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cValAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cValINTTerminalRuleCall_1_0 = (RuleCall)cValAssignment_1.eContents().get(0);
+
+ //LoopsDeclaration:
+ //
+ // "loops:" val=INT;
+ public ParserRule getRule() { return rule; }
+
+ //"loops:" val=INT
+ public Group getGroup() { return cGroup; }
+
+ //"loops:"
+ public Keyword getLoopsKeyword_0() { return cLoopsKeyword_0; }
+
+ //val=INT
+ public Assignment getValAssignment_1() { return cValAssignment_1; }
+
+ //INT
+ public RuleCall getValINTTerminalRuleCall_1_0() { return cValINTTerminalRuleCall_1_0; }
+ }
+
+ public class SeedDeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SeedDeclaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cRandseedKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cValAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cValINTTerminalRuleCall_1_0 = (RuleCall)cValAssignment_1.eContents().get(0);
+
+ //SeedDeclaration:
+ //
+ // "randseed:" val=INT;
+ public ParserRule getRule() { return rule; }
+
+ //"randseed:" val=INT
+ public Group getGroup() { return cGroup; }
+
+ //"randseed:"
+ public Keyword getRandseedKeyword_0() { return cRandseedKeyword_0; }
+
+ //val=INT
+ public Assignment getValAssignment_1() { return cValAssignment_1; }
+
+ //INT
+ public RuleCall getValINTTerminalRuleCall_1_0() { return cValINTTerminalRuleCall_1_0; }
+ }
+
+ public class SignalDeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SignalDeclaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
+ private final Assignment cPortAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
+ private final RuleCall cPortIDTerminalRuleCall_0_0_0 = (RuleCall)cPortAssignment_0_0.eContents().get(0);
+ private final Keyword cFullStopKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1);
+ private final Assignment cSignameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cSignameIDTerminalRuleCall_1_0 = (RuleCall)cSignameAssignment_1.eContents().get(0);
+ private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
+ private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
+ private final Keyword cEqualsSignKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
+ private final Assignment cIntValAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1);
+ private final RuleCall cIntValINTTerminalRuleCall_2_0_1_0 = (RuleCall)cIntValAssignment_2_0_1.eContents().get(0);
+ private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
+ private final Keyword cEqualsSignKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
+ private final Assignment cStrValAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
+ private final RuleCall cStrValSTRINGTerminalRuleCall_2_1_1_0 = (RuleCall)cStrValAssignment_2_1_1.eContents().get(0);
+
+ //SignalDeclaration:
+ //
+ // (port=ID ".")? signame=ID ("=" intVal=INT | "=" strVal=STRING)?;
+ public ParserRule getRule() { return rule; }
+
+ //(port=ID ".")? signame=ID ("=" intVal=INT | "=" strVal=STRING)?
+ public Group getGroup() { return cGroup; }
+
+ //(port=ID ".")?
+ public Group getGroup_0() { return cGroup_0; }
+
+ //port=ID
+ public Assignment getPortAssignment_0_0() { return cPortAssignment_0_0; }
+
+ //ID
+ public RuleCall getPortIDTerminalRuleCall_0_0_0() { return cPortIDTerminalRuleCall_0_0_0; }
+
+ //"."
+ public Keyword getFullStopKeyword_0_1() { return cFullStopKeyword_0_1; }
+
+ //signame=ID
+ public Assignment getSignameAssignment_1() { return cSignameAssignment_1; }
+
+ //ID
+ public RuleCall getSignameIDTerminalRuleCall_1_0() { return cSignameIDTerminalRuleCall_1_0; }
+
+ //("=" intVal=INT | "=" strVal=STRING)?
+ public Alternatives getAlternatives_2() { return cAlternatives_2; }
+
+ //"=" intVal=INT
+ public Group getGroup_2_0() { return cGroup_2_0; }
+
+ //"="
+ public Keyword getEqualsSignKeyword_2_0_0() { return cEqualsSignKeyword_2_0_0; }
+
+ //intVal=INT
+ public Assignment getIntValAssignment_2_0_1() { return cIntValAssignment_2_0_1; }
+
+ //INT
+ public RuleCall getIntValINTTerminalRuleCall_2_0_1_0() { return cIntValINTTerminalRuleCall_2_0_1_0; }
+
+ //"=" strVal=STRING
+ public Group getGroup_2_1() { return cGroup_2_1; }
+
+ //"="
+ public Keyword getEqualsSignKeyword_2_1_0() { return cEqualsSignKeyword_2_1_0; }
+
+ //strVal=STRING
+ public Assignment getStrValAssignment_2_1_1() { return cStrValAssignment_2_1_1; }
+
+ //STRING
+ public RuleCall getStrValSTRINGTerminalRuleCall_2_1_1_0() { return cStrValSTRINGTerminalRuleCall_2_1_1_0; }
+ }
+
+ public class SourceDeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SourceDeclaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cRefAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final CrossReference cRefStateCrossReference_0_0 = (CrossReference)cRefAssignment_0.eContents().get(0);
+ private final RuleCall cRefStateIDTerminalRuleCall_0_0_1 = (RuleCall)cRefStateCrossReference_0_0.eContents().get(1);
+ private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //SourceDeclaration:
+ //
+ // ref=[State] ":";
+ public ParserRule getRule() { return rule; }
+
+ //ref=[State] ":"
+ public Group getGroup() { return cGroup; }
+
+ //ref=[State]
+ public Assignment getRefAssignment_0() { return cRefAssignment_0; }
+
+ //[State]
+ public CrossReference getRefStateCrossReference_0_0() { return cRefStateCrossReference_0_0; }
+
+ //ID
+ public RuleCall getRefStateIDTerminalRuleCall_0_0_1() { return cRefStateIDTerminalRuleCall_0_0_1; }
+
+ //":"
+ public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+ }
+
+ public class DestinationDeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DestinationDeclaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignSpaceKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final CrossReference cRefStateCrossReference_1_0 = (CrossReference)cRefAssignment_1.eContents().get(0);
+ private final RuleCall cRefStateIDTerminalRuleCall_1_0_1 = (RuleCall)cRefStateCrossReference_1_0.eContents().get(1);
+
+ //DestinationDeclaration:
+ //
+ // "-> " ref=[State];
+ public ParserRule getRule() { return rule; }
+
+ //"-> " ref=[State]
+ public Group getGroup() { return cGroup; }
+
+ //"-> "
+ public Keyword getHyphenMinusGreaterThanSignSpaceKeyword_0() { return cHyphenMinusGreaterThanSignSpaceKeyword_0; }
+
+ //ref=[State]
+ public Assignment getRefAssignment_1() { return cRefAssignment_1; }
+
+ //[State]
+ public CrossReference getRefStateCrossReference_1_0() { return cRefStateCrossReference_1_0; }
+
+ //ID
+ public RuleCall getRefStateIDTerminalRuleCall_1_0_1() { return cRefStateIDTerminalRuleCall_1_0_1; }
+ }
+
+ public class TransitionDeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TransitionDeclaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cSourceAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cSourceSourceDeclarationParserRuleCall_0_0 = (RuleCall)cSourceAssignment_0.eContents().get(0);
+ private final Keyword cInKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cInAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cInSignalDeclarationParserRuleCall_2_0 = (RuleCall)cInAssignment_2.eContents().get(0);
+ private final Keyword cOutKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cOutAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cOutSignalDeclarationParserRuleCall_4_0 = (RuleCall)cOutAssignment_4.eContents().get(0);
+ private final Assignment cDestinationAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cDestinationDestinationDeclarationParserRuleCall_5_0 = (RuleCall)cDestinationAssignment_5.eContents().get(0);
+
+ //TransitionDeclaration:
+ //
+ // source=SourceDeclaration "in:" in+=SignalDeclaration* "out:" out+=SignalDeclaration*
+ //
+ // destination=DestinationDeclaration;
+ public ParserRule getRule() { return rule; }
+
+ //source=SourceDeclaration "in:" in+=SignalDeclaration* "out:" out+=SignalDeclaration* destination=DestinationDeclaration
+ public Group getGroup() { return cGroup; }
+
+ //source=SourceDeclaration
+ public Assignment getSourceAssignment_0() { return cSourceAssignment_0; }
+
+ //SourceDeclaration
+ public RuleCall getSourceSourceDeclarationParserRuleCall_0_0() { return cSourceSourceDeclarationParserRuleCall_0_0; }
+
+ //"in:"
+ public Keyword getInKeyword_1() { return cInKeyword_1; }
+
+ //in+=SignalDeclaration*
+ public Assignment getInAssignment_2() { return cInAssignment_2; }
+
+ //SignalDeclaration
+ public RuleCall getInSignalDeclarationParserRuleCall_2_0() { return cInSignalDeclarationParserRuleCall_2_0; }
+
+ //"out:"
+ public Keyword getOutKeyword_3() { return cOutKeyword_3; }
+
+ //out+=SignalDeclaration*
+ public Assignment getOutAssignment_4() { return cOutAssignment_4; }
+
+ //SignalDeclaration
+ public RuleCall getOutSignalDeclarationParserRuleCall_4_0() { return cOutSignalDeclarationParserRuleCall_4_0; }
+
+ //destination=DestinationDeclaration
+ public Assignment getDestinationAssignment_5() { return cDestinationAssignment_5; }
+
+ //DestinationDeclaration
+ public RuleCall getDestinationDestinationDeclarationParserRuleCall_5_0() { return cDestinationDestinationDeclarationParserRuleCall_5_0; }
+ }
+
+
+ private ModelElements pModel;
+ private TestscriptElements pTestscript;
+ private StateElements pState;
+ private StateDeclarationElements pStateDeclaration;
+ private InitialDeclarationElements pInitialDeclaration;
+ private LoopsDeclarationElements pLoopsDeclaration;
+ private SeedDeclarationElements pSeedDeclaration;
+ private SignalDeclarationElements pSignalDeclaration;
+ private SourceDeclarationElements pSourceDeclaration;
+ private DestinationDeclarationElements pDestinationDeclaration;
+ private TransitionDeclarationElements pTransitionDeclaration;
+
+ private final Grammar grammar;
+
+ private TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public FSMtestGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammar = internalFindGrammar(grammarProvider);
+ this.gaTerminals = gaTerminals;
+ }
+
+ protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+ Grammar grammar = grammarProvider.getGrammar(this);
+ while (grammar != null) {
+ if ("org.eclipse.etrice.generator.FSMtest".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 TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ //Model:
+ //
+ // Testscripts+=Testscript*;
+ public ModelElements getModelAccess() {
+ return (pModel != null) ? pModel : (pModel = new ModelElements());
+ }
+
+ public ParserRule getModelRule() {
+ return getModelAccess().getRule();
+ }
+
+ //Testscript:
+ //
+ // "fsmtest" name=ID stateDeclaration=StateDeclaration initialDeclaration=InitialDeclaration
+ //
+ // loopsDeclaration=LoopsDeclaration seedDeclaration=SeedDeclaration? transitionDeclarations+=TransitionDeclaration*
+ //
+ // ";";
+ public TestscriptElements getTestscriptAccess() {
+ return (pTestscript != null) ? pTestscript : (pTestscript = new TestscriptElements());
+ }
+
+ public ParserRule getTestscriptRule() {
+ return getTestscriptAccess().getRule();
+ }
+
+ //State:
+ //
+ // name=ID;
+ public StateElements getStateAccess() {
+ return (pState != null) ? pState : (pState = new StateElements());
+ }
+
+ public ParserRule getStateRule() {
+ return getStateAccess().getRule();
+ }
+
+ //StateDeclaration:
+ //
+ // "states:" states+=State ("," states+=State)*;
+ public StateDeclarationElements getStateDeclarationAccess() {
+ return (pStateDeclaration != null) ? pStateDeclaration : (pStateDeclaration = new StateDeclarationElements());
+ }
+
+ public ParserRule getStateDeclarationRule() {
+ return getStateDeclarationAccess().getRule();
+ }
+
+ //InitialDeclaration:
+ //
+ // "initial:" initial=[State];
+ public InitialDeclarationElements getInitialDeclarationAccess() {
+ return (pInitialDeclaration != null) ? pInitialDeclaration : (pInitialDeclaration = new InitialDeclarationElements());
+ }
+
+ public ParserRule getInitialDeclarationRule() {
+ return getInitialDeclarationAccess().getRule();
+ }
+
+ //LoopsDeclaration:
+ //
+ // "loops:" val=INT;
+ public LoopsDeclarationElements getLoopsDeclarationAccess() {
+ return (pLoopsDeclaration != null) ? pLoopsDeclaration : (pLoopsDeclaration = new LoopsDeclarationElements());
+ }
+
+ public ParserRule getLoopsDeclarationRule() {
+ return getLoopsDeclarationAccess().getRule();
+ }
+
+ //SeedDeclaration:
+ //
+ // "randseed:" val=INT;
+ public SeedDeclarationElements getSeedDeclarationAccess() {
+ return (pSeedDeclaration != null) ? pSeedDeclaration : (pSeedDeclaration = new SeedDeclarationElements());
+ }
+
+ public ParserRule getSeedDeclarationRule() {
+ return getSeedDeclarationAccess().getRule();
+ }
+
+ //SignalDeclaration:
+ //
+ // (port=ID ".")? signame=ID ("=" intVal=INT | "=" strVal=STRING)?;
+ public SignalDeclarationElements getSignalDeclarationAccess() {
+ return (pSignalDeclaration != null) ? pSignalDeclaration : (pSignalDeclaration = new SignalDeclarationElements());
+ }
+
+ public ParserRule getSignalDeclarationRule() {
+ return getSignalDeclarationAccess().getRule();
+ }
+
+ //SourceDeclaration:
+ //
+ // ref=[State] ":";
+ public SourceDeclarationElements getSourceDeclarationAccess() {
+ return (pSourceDeclaration != null) ? pSourceDeclaration : (pSourceDeclaration = new SourceDeclarationElements());
+ }
+
+ public ParserRule getSourceDeclarationRule() {
+ return getSourceDeclarationAccess().getRule();
+ }
+
+ //DestinationDeclaration:
+ //
+ // "-> " ref=[State];
+ public DestinationDeclarationElements getDestinationDeclarationAccess() {
+ return (pDestinationDeclaration != null) ? pDestinationDeclaration : (pDestinationDeclaration = new DestinationDeclarationElements());
+ }
+
+ public ParserRule getDestinationDeclarationRule() {
+ return getDestinationDeclarationAccess().getRule();
+ }
+
+ //TransitionDeclaration:
+ //
+ // source=SourceDeclaration "in:" in+=SignalDeclaration* "out:" out+=SignalDeclaration*
+ //
+ // destination=DestinationDeclaration;
+ public TransitionDeclarationElements getTransitionDeclarationAccess() {
+ return (pTransitionDeclaration != null) ? pTransitionDeclaration : (pTransitionDeclaration = new TransitionDeclarationElements());
+ }
+
+ public ParserRule getTransitionDeclarationRule() {
+ return getTransitionDeclarationAccess().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/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/validation/AbstractFSMtestJavaValidator.java b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/validation/AbstractFSMtestJavaValidator.java
new file mode 100644
index 000000000..ec2259d42
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src-gen/org/eclipse/etrice/generator/validation/AbstractFSMtestJavaValidator.java
@@ -0,0 +1,18 @@
+package org.eclipse.etrice.generator.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public class AbstractFSMtestJavaValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.etrice.generator.fsmtest.FsmtestPackage.eINSTANCE);
+ return result;
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtest.xtext b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtest.xtext
new file mode 100644
index 000000000..44dc91a38
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtest.xtext
@@ -0,0 +1,55 @@
+grammar org.eclipse.etrice.generator.FSMtest with org.eclipse.xtext.common.Terminals
+
+generate fsmtest "http://www.eclipse.org/etrice/generator/FSMtest"
+
+Model:
+ Testscripts+=Testscript*;
+
+Testscript:
+ 'fsmtest' name=ID
+ stateDeclaration = StateDeclaration
+ initialDeclaration = InitialDeclaration
+ loopsDeclaration = LoopsDeclaration
+ (seedDeclaration = SeedDeclaration)?
+ (transitionDeclarations += TransitionDeclaration)*
+ ';'
+;
+
+State:
+ name=ID
+;
+
+StateDeclaration:
+ 'states:' states+=State (',' states+=State)*
+;
+
+InitialDeclaration:
+ "initial:" initial=[State|ID]
+;
+
+LoopsDeclaration:
+ 'loops:' val=INT
+;
+
+SeedDeclaration:
+ 'randseed:' val=INT
+;
+
+SignalDeclaration:
+ (port=ID '.')? signame=ID (('=' intVal=INT) | ('=' strVal=STRING))?
+;
+
+SourceDeclaration:
+ ref=[State|ID] ':'
+;
+
+DestinationDeclaration:
+ '-> ' ref=[State|ID]
+;
+
+TransitionDeclaration:
+ source=SourceDeclaration
+ 'in:' (in+=SignalDeclaration)*
+ 'out:' (out+=SignalDeclaration)*
+ destination=DestinationDeclaration
+;
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtestRuntimeModule.java b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtestRuntimeModule.java
new file mode 100644
index 000000000..b26aed799
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtestRuntimeModule.java
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class FSMtestRuntimeModule extends org.eclipse.etrice.generator.AbstractFSMtestRuntimeModule {
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtestStandaloneSetup.java b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtestStandaloneSetup.java
new file mode 100644
index 000000000..0e40975bb
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/FSMtestStandaloneSetup.java
@@ -0,0 +1,14 @@
+
+package org.eclipse.etrice.generator;
+
+/**
+ * Initialization support for running Xtext languages
+ * without equinox extension registry
+ */
+public class FSMtestStandaloneSetup extends FSMtestStandaloneSetupGenerated{
+
+ public static void doSetup() {
+ new FSMtestStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+}
+
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/GenerateFSMtest.mwe2 b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/GenerateFSMtest.mwe2
new file mode 100644
index 000000000..f5b3f00ad
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/GenerateFSMtest.mwe2
@@ -0,0 +1,139 @@
+module org.eclipse.etrice.generator.GenerateFSMtest
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/eclipse/etrice/generator/FSMtest.xtext"
+var file.extensions = "fsmtest"
+var projectName = "org.eclipse.etrice.generator.fsmtest"
+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/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/formatting/FSMtestFormatter.java b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/formatting/FSMtestFormatter.java
new file mode 100644
index 000000000..7abe2f8bd
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/formatting/FSMtestFormatter.java
@@ -0,0 +1,65 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator.formatting;
+
+import org.eclipse.etrice.generator.services.FSMtestGrammarAccess;
+import org.eclipse.xtext.Keyword;
+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 FSMtestFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+ FSMtestGrammarAccess grammarAccess = (FSMtestGrammarAccess) getGrammarAccess();
+ c.setLinewrap(0, 1, 2).before(grammarAccess.getSL_COMMENTRule());
+ c.setLinewrap(0, 1, 2).before(grammarAccess.getML_COMMENTRule());
+ c.setLinewrap(0, 1, 1).after(grammarAccess.getML_COMMENTRule());
+
+ for (Keyword k: grammarAccess.findKeywords(";")) {
+ c.setIndentationDecrement().before(k);
+ c.setLinewrap().before(k);
+ }
+
+ for (Keyword k: grammarAccess.findKeywords(",", ":")) {
+ c.setNoSpace().before(k);
+ }
+
+ for (Keyword k: grammarAccess.findKeywords("in:","out:")) {
+ c.setLinewrap().before(k);
+ }
+
+ for (Keyword k: grammarAccess.findKeywords("states:", "initial:", "loops:", "randseed:")) {
+ c.setLinewrap().before(k);
+ }
+
+ for (Keyword k: grammarAccess.findKeywords(".")) {
+ c.setNoSpace().around(k);
+ }
+
+ for (Keyword k: grammarAccess.findKeywords("fsmtest")) {
+ c.setLinewrap(2).before(k);
+ c.setIndentationIncrement().after(k);
+ }
+
+ c.setLinewrap(2).before(grammarAccess.getSourceDeclarationRule());
+ c.setIndentationIncrement().after(grammarAccess.getSourceDeclarationRule());
+
+ c.setIndentationDecrement().before(grammarAccess.getDestinationDeclarationRule());
+ c.setLinewrap(1).before(grammarAccess.getDestinationDeclarationRule());
+
+ c.setIndentationIncrement().before(grammarAccess.getSignalDeclarationRule());
+ c.setLinewrap(1).before(grammarAccess.getSignalDeclarationRule());
+ c.setIndentationDecrement().after(grammarAccess.getSignalDeclarationRule());
+
+ }
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/generator/FSMtestGenerator.xtend b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/generator/FSMtestGenerator.xtend
new file mode 100644
index 000000000..223f45fde
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/generator/FSMtestGenerator.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+
+class FSMtestGenerator implements IGenerator {
+
+ override void doGenerate(Resource resource, IFileSystemAccess fsa) {
+ //TODO implement me
+ }
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/scoping/FSMtestScopeProvider.java b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/scoping/FSMtestScopeProvider.java
new file mode 100644
index 000000000..2b7adfede
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/scoping/FSMtestScopeProvider.java
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.generator.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 FSMtestScopeProvider extends AbstractDeclarativeScopeProvider {
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/validation/FSMtestJavaValidator.java b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/validation/FSMtestJavaValidator.java
new file mode 100644
index 000000000..3a97287a5
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/src/org/eclipse/etrice/generator/validation/FSMtestJavaValidator.java
@@ -0,0 +1,38 @@
+package org.eclipse.etrice.generator.validation;
+
+import org.eclipse.etrice.generator.fsmtest.FsmtestPackage;
+import org.eclipse.etrice.generator.fsmtest.Testscript;
+import org.eclipse.etrice.generator.fsmtest.TransitionDeclaration;
+import org.eclipse.xtext.validation.Check;
+
+
+public class FSMtestJavaValidator extends AbstractFSMtestJavaValidator {
+
+
+ @Check
+ public void checkState(org.eclipse.etrice.generator.fsmtest.State state) {
+ if (!canReach(state))
+ error("You cannot reach state "+state.getName(), FsmtestPackage.Literals.STATE__NAME);
+ if (!canLeave(state))
+ error("You cannot leave state "+state.getName(), FsmtestPackage.Literals.STATE__NAME);
+ }
+
+ private boolean canReach(org.eclipse.etrice.generator.fsmtest.State state) {
+ Testscript s = (Testscript) state.eContainer().eContainer();
+ for (TransitionDeclaration t:s.getTransitionDeclarations()) {
+ if (t.getDestination().getRef()==state)
+ return true;
+ }
+ return false;
+ }
+
+ private boolean canLeave(org.eclipse.etrice.generator.fsmtest.State state) {
+ Testscript s = (Testscript) state.eContainer().eContainer();
+ for (TransitionDeclaration t:s.getTransitionDeclarations()) {
+ if (t.getSource().getRef()==state)
+ return true;
+ }
+ return false;
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/xtend-gen/org/eclipse/etrice/generator/generator/.FSMtestGenerator.java._trace b/plugins/org.eclipse.etrice.generator.fsmtest/xtend-gen/org/eclipse/etrice/generator/generator/.FSMtestGenerator.java._trace
new file mode 100644
index 000000000..bd4df5225
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/xtend-gen/org/eclipse/etrice/generator/generator/.FSMtestGenerator.java._trace
Binary files differ
diff --git a/plugins/org.eclipse.etrice.generator.fsmtest/xtend-gen/org/eclipse/etrice/generator/generator/FSMtestGenerator.java b/plugins/org.eclipse.etrice.generator.fsmtest/xtend-gen/org/eclipse/etrice/generator/generator/FSMtestGenerator.java
new file mode 100644
index 000000000..85ec4254a
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator.fsmtest/xtend-gen/org/eclipse/etrice/generator/generator/FSMtestGenerator.java
@@ -0,0 +1,11 @@
+package org.eclipse.etrice.generator.generator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+
+@SuppressWarnings("all")
+public class FSMtestGenerator implements IGenerator {
+ public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
+ }
+}
diff --git a/tests/org.eclipse.etrice.generator.fsmtest.tests/.classpath b/tests/org.eclipse.etrice.generator.fsmtest.tests/.classpath
new file mode 100644
index 000000000..e5fbd3dd2
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.fsmtest.tests/.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/tests/org.eclipse.etrice.generator.fsmtest.tests/.gitignore b/tests/org.eclipse.etrice.generator.fsmtest.tests/.gitignore
new file mode 100644
index 000000000..092357e47
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.fsmtest.tests/.gitignore
@@ -0,0 +1 @@
+bin
diff --git a/tests/org.eclipse.etrice.generator.fsmtest.tests/.project b/tests/org.eclipse.etrice.generator.fsmtest.tests/.project
new file mode 100644
index 000000000..b3276320f
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.fsmtest.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.etrice.generator.fsmtest.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.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/org.eclipse.etrice.generator.fsmtest.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.etrice.generator.fsmtest.tests/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..347a01522
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.fsmtest.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.etrice.generator.fsmtest.tests
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.etrice.generator.fsmtest.tests; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.etrice.generator.fsmtest,
+ org.eclipse.etrice.generator.fsmtest.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.xtext.junit4,
+ org.eclipse.ui.workbench;resolution:=optional
+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.etrice.generator
diff --git a/tests/org.eclipse.etrice.generator.fsmtest.tests/build.properties b/tests/org.eclipse.etrice.generator.fsmtest.tests/build.properties
new file mode 100644
index 000000000..e10dcceb6
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.fsmtest.tests/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/tests/org.eclipse.etrice.generator.fsmtest.tests/org.eclipse.etrice.generator.fsmtest.tests.launch b/tests/org.eclipse.etrice.generator.fsmtest.tests/org.eclipse.etrice.generator.fsmtest.tests.launch
new file mode 100644
index 000000000..ea527a43f
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.fsmtest.tests/org.eclipse.etrice.generator.fsmtest.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.etrice.generator.fsmtest.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.etrice.generator.fsmtest.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.etrice.generator.fsmtest.tests"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.etrice.generator.fsmtest.tests/src-gen/org/eclipse/etrice/generator/FSMtestInjectorProvider.java b/tests/org.eclipse.etrice.generator.fsmtest.tests/src-gen/org/eclipse/etrice/generator/FSMtestInjectorProvider.java
new file mode 100644
index 000000000..421bd31db
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.fsmtest.tests/src-gen/org/eclipse/etrice/generator/FSMtestInjectorProvider.java
@@ -0,0 +1,45 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator;
+
+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 FSMtestInjectorProvider 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 FSMtestStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+
+ public void restoreRegistry() {
+ stateBeforeInjectorCreation.restoreGlobalState();
+ }
+
+ public void setupRegistry() {
+ getInjector();
+ stateAfterInjectorCreation.restoreGlobalState();
+ }
+}
diff --git a/tests/org.eclipse.etrice.generator.fsmtest.tests/src-gen/org/eclipse/etrice/generator/FSMtestUiInjectorProvider.java b/tests/org.eclipse.etrice.generator.fsmtest.tests/src-gen/org/eclipse/etrice/generator/FSMtestUiInjectorProvider.java
new file mode 100644
index 000000000..802290b22
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.fsmtest.tests/src-gen/org/eclipse/etrice/generator/FSMtestUiInjectorProvider.java
@@ -0,0 +1,16 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.generator;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class FSMtestUiInjectorProvider implements IInjectorProvider {
+
+ public Injector getInjector() {
+ return org.eclipse.etrice.generator.ui.internal.FSMtestActivator.getInstance().getInjector("org.eclipse.etrice.generator.FSMtest");
+ }
+
+}

Back to the top