Initial Commit
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/.cvsignore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/.cvsignore
new file mode 100644
index 0000000..a3de7db
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/.cvsignore
@@ -0,0 +1 @@
+*.qvtotrace
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/.project b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/.project
new file mode 100644
index 0000000..e1cb584
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2m.qvt.oml.project.QVTOBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2m.qvt.oml.project.QVTONature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States to XMI.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States to XMI.launch
new file mode 100644
index 0000000..7ebff3b
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States to XMI.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.m2m.qvt.oml.QvtTransformation">
+<booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.clearContents1" value="true"/>
+<booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.clearContents2" value="true"/>
+<mapAttribute key="org.eclipse.m2m.qvt.oml.interpreter.configurationProperties"/>
+<intAttribute key="org.eclipse.m2m.qvt.oml.interpreter.elemCount" value="2"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.featureName1" value=""/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.featureName2" value=""/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.module" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvto"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel1" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel2" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.xmi"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetType1" value="NEW_MODEL"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetType2" value="NEW_MODEL"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.traceFile" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvtotrace"/>
+<booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.useTraceFile" value="true"/>
+</launchConfiguration>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States.launch
new file mode 100644
index 0000000..d1b0858
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.m2m.qvt.oml.QvtTransformation">
+<booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.clearContents1" value="true"/>
+<booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.clearContents2" value="true"/>
+<mapAttribute key="org.eclipse.m2m.qvt.oml.interpreter.configurationProperties"/>
+<intAttribute key="org.eclipse.m2m.qvt.oml.interpreter.elemCount" value="2"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.featureName1" value=""/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.featureName2" value=""/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.module" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvto"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel1" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel2" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetType1" value="NEW_MODEL"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetType2" value="NEW_MODEL"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.traceFile" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvtotrace"/>
+<booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.useTraceFile" value="true"/>
+</launchConfiguration>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvto b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvto
new file mode 100644
index 0000000..600e18b
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvto
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: FlattenStates.qvto,v 1.1 2011/03/12 20:46:04 ewillink Exp $
+ */
+modeltype HIER uses 'http://ocl.eclipse.org/tutorial/eclipsecon2011/States';
+modeltype FLAT uses 'http://ocl.eclipse.org/tutorial/eclipsecon2011/States';
+
+/*
+ * The transformation signature declares that a HIER modeltype is required as input, while an FLAT
+ * modeltype is produced as an output. The HIER modeltype is referenced as 'hier' throughout the
+ * transformation definition, while no name is needed for the output FLAT modeltype. Note that OCL
+ * type and namespace notation are used in operational QVT (: and :: respectively).
+ */
+transformation FlattenStates(in hier : HIER, out FLAT);
+
+/*
+ * The main entry point of the transformation. The 'hier' reference to the input HIER modeltype
+ * instance is used to collect all rootObjects() of type Model. The rootObjects() operation
+ * is available on all QVT Model objects (extents) and returns those objects found at the
+ * root of the input model. The [HIER::Model] statement following the call to rootObjects()
+ * is shorthand notation for the imperative select (xselect) construct where the condition is
+ * a type expression, which effectively performs a oclIsKindOf(HIER::Model) with type recasting
+ * as a sequence.
+ *
+ * The invocation of the model2FLATModel() mapping is done using an -> operator, which is a
+ * shorthand notation for the imperative collect (xcollect) construct. Alternatively, it could
+ * be written as hier.rootObjects()[HIER::Model]->xcollect(a | a.map model2FLATModel());
+ */
+main() {
+ hier.rootObjects()[HIER::Module]->map model2FLATModel();
+}
+
+/*
+ * This mapping returns an FLAT::Model instance from the HIER::Model passed from main(). The name
+ * attributes map directly using the OCL assignment operator. The FLAT Model has a collection
+ * of schemas populated by the package2schemas() mapping. The Sequence of FLAT::Schema objects
+ * that is returned by the mapping is converted into the required OrderedSet using the OCL operation
+ * asOrderedSet().
+ *
+ * This mapping has no init or end section, leaving the body as an implicit population section.
+ */
+mapping HIER::Module::model2FLATModel() : FLAT::Module {
+ name := 'flattened.' + self.name;
+ var name2state : Dict(String, HIER::State);
+ var allMachines : Set(HIER::Statemachine) =
+ self.machines.allMachines()->asSet();
+ var allStates : Set(HIER::State) =
+ allMachines.states->asSet();
+ var allCompoundStates : Set(HIER::CompoundState) =
+ allStates->select(oclIsTypeOf(HIER::CompoundState))
+ ->collect(oclAsType(HIER::CompoundState))->asSet();
+ var rootMachines : Set(HIER::Statemachine) =
+ allMachines->select(m : HIER::Statemachine
+ | not allCompoundStates->exists(machine = m));
+// var nestedMachines : Set(HIER::Statemachine) = allMachines - rootMachines;
+ machines := rootMachines->map machine2machine(name2state);
+}
+
+mapping HIER::Statemachine::machine2machine(name2state : Dict(String, HIER::State)) : FLAT::Statemachine {
+ var exitTransitions : Dict(FLAT::Event, FLAT::State);
+ name := self.name;
+ events := self.allMachines().events->asSet().map event2event();
+ states := self.states.map state2states(name2state, Sequence{});
+ self.states.map state2transitions(name2state, Sequence{}, exitTransitions);
+}
+
+mapping HIER::Event::event2event() : FLAT::Event {
+ name := self.name;
+}
+
+mapping HIER::State::state2states(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState)) : Set(FLAT::State)
+ disjuncts HIER::SimpleState::simpleState2states,
+ HIER::CompoundState::compoundState2states {}
+
+mapping HIER::SimpleState::simpleState2states(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState)) : Set(FLAT::SimpleState) {
+ init {
+ result := self.map simpleState2state(name2state, hierarchy)->asSet();
+ }
+}
+
+mapping HIER::SimpleState::simpleState2state(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState)) : FLAT::SimpleState {
+ var stateName : String = self.getStateName(hierarchy);
+ name := stateName;
+ value := self.value;
+ initial := hierarchy->isEmpty() and self.initial;
+ name2state->put(stateName, result);
+}
+
+mapping HIER::CompoundState::compoundState2states(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState)) : Set(FLAT::State) {
+ init {
+ result := self.machine.states.map state2states(name2state, hierarchy->append(self))->asSet();
+ }
+}
+
+mapping HIER::State::state2transitions(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState), exitTransitions : Dict(FLAT::Event, FLAT::State)) : Set(FLAT::State)
+ disjuncts HIER::SimpleState::simpleState2transitions,
+ HIER::CompoundState::compoundState2transitions {}
+
+mapping HIER::SimpleState::simpleState2transitions(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState), exitTransitions : Dict(FLAT::Event, FLAT::State)) : Set(FLAT::State) {
+ init {
+ result := self.map simpleState2transitions2(name2state, hierarchy, exitTransitions)->asSet();
+ }
+}
+
+mapping HIER::SimpleState::simpleState2transitions2(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState), exitTransitions : Dict(FLAT::Event, FLAT::State)) : FLAT::State {
+ init {
+ var stateName : String = self.getStateName(hierarchy);
+ result := name2state->get(stateName);
+ }
+ transitions := exitTransitions->keys()->iterate(v : FLAT::Event;
+ acc : Sequence(HIER::Transition) =
+ self.transitions.map transition2transition(name2state, hierarchy)
+ | acc->append(object FLAT::Transition { state := exitTransitions->get(v); event := v; }));
+}
+
+mapping HIER::CompoundState::compoundState2transitions(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState), outerExitTransitions : Dict(FLAT::Event, FLAT::State)) : Set(FLAT::State) {
+ init {
+ var innerExitTransitions : Dict(FLAT::Event, FLAT::State);
+ self.transitions.cacheTransition(name2state, hierarchy, innerExitTransitions);
+ outerExitTransitions->keys().cacheTransition(innerExitTransitions, outerExitTransitions);
+ result := self.machine.states.map state2transitions(name2state, hierarchy->append(self), innerExitTransitions)->asSet();
+ }
+}
+
+mapping HIER::Transition::transition2transition(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState)) : FLAT::Transition {
+ init {
+ var stateName : String = self.state.initialStateName(hierarchy);
+ result := object FLAT::Transition {};
+ result.state := name2state->get(stateName);
+ result.event := self.event.resolveone(Event);
+ }
+}
+
+query HIER::Statemachine::allMachines() : Set(HIER::Statemachine) {
+ return self->asSet()->union(self->closure(sm : HIER::Statemachine
+ | sm.states->select(oclIsTypeOf(HIER::CompoundState))
+ ->collect(oclAsType(HIER::CompoundState).machine)))
+}
+
+query HIER::State::initialStateName(hierarchy : Sequence(HIER::CompoundState)) : String {
+ var stateName : String = self.getStateName(hierarchy);
+ return if self.oclIsKindOf(HIER::CompoundState)
+ then let compoundState : HIER::CompoundState =
+ self.oclAsType(HIER::CompoundState)
+ in compoundState.machine.states->any(initial)
+ .initialStateName(hierarchy->append(compoundState))
+ else stateName
+ endif
+}
+
+query HIER::State::getStateName(hierarchy : Sequence(HIER::CompoundState)) : String {
+ return hierarchy->iterate(c : HIER::CompoundState;
+ s : String = self.name |
+ c.name + '_' + s)
+}
+
+query HIER::Transition::cacheTransition(name2state : Dict(String, HIER::State), hierarchy : Sequence(HIER::CompoundState), exitTransitions : Dict(FLAT::Event, FLAT::State)) : Dict(FLAT::Event, FLAT::State) {
+ var stateName : String = self.state.initialStateName(hierarchy);
+ var state : HIER::State = name2state->get(stateName);
+ var event : HIER::Event = self.event.resolveone(Event);
+ exitTransitions->put(event, state);
+ return exitTransitions
+}
+
+query FLAT::Event::cacheTransition(innerExitTransitions : Dict(FLAT::Event, FLAT::State), outerExitTransitions : Dict(FLAT::Event, FLAT::State)) : Dict(FLAT::Event, FLAT::State) {
+ innerExitTransitions->put(self, outerExitTransitions->get(self));
+ return innerExitTransitions
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/META-INF/MANIFEST.MF b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..2b644c5
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/META-INF/MANIFEST.MF
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EclipseCon 2011 Tutorial using QVTo
+Bundle-SymbolicName: org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/build.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/build.properties
new file mode 100644
index 0000000..5f22cdd
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/build.properties
@@ -0,0 +1 @@
+bin.includes = META-INF/
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states
new file mode 100644
index 0000000..7e387bf
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states
@@ -0,0 +1,41 @@
+module "compound.states"
+
+statemachine Outer
+{
+ events START STOP;
+
+ initial state Start value 4
+ {
+ START => CompoundA
+ }
+
+ state Stop value 5
+ {
+ STOP => CompoundB
+ }
+
+ compound state CompoundA machine Inner
+ {
+ START => Stop
+ }
+
+ compound state CompoundB machine Inner
+ {
+ STOP => Stop
+ }
+}
+
+statemachine Inner
+{
+ events LEFT RIGHT;
+
+ initial state Left value 1
+ {
+ LEFT => Right
+ }
+
+ state Right
+ {
+ RIGHT => Left
+ }
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/sample.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/sample.properties
new file mode 100644
index 0000000..34563fc
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/sample.properties
@@ -0,0 +1,4 @@
+#
+#Wed Mar 09 07:59:35 GMT 2011
+projectName=org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates
+name=org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.classpath b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.classpath
new file mode 100644
index 0000000..8727917
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.cvsignore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.cvsignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.project b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.project
new file mode 100644
index 0000000..1089f24
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ocl.tutorial.eclipsecon2011.playspace</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/org.eclipse.jdt.core.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..8b3008e
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Wed Mar 09 06:22:52 GMT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states
new file mode 100644
index 0000000..1b8356c
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states
@@ -0,0 +1,40 @@
+module "flattened.compound.states"
+
+statemachine Outer
+{
+ events START LEFT STOP RIGHT;
+
+ initial state Start value 4
+ {
+ START => CompoundA_Left
+ }
+
+ state Stop value 5
+ {
+ STOP => CompoundB_Left
+ }
+
+ state CompoundA_Right
+ {
+ RIGHT => CompoundA_Left
+ START => Stop
+ }
+
+ state CompoundA_Left value 1
+ {
+ LEFT => CompoundA_Right
+ START => Stop
+ }
+
+ state CompoundB_Right
+ {
+ RIGHT => CompoundB_Left
+ STOP => Stop
+ }
+
+ state CompoundB_Left value 1
+ {
+ LEFT => CompoundB_Right
+ STOP => Stop
+ }
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.xmi b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.xmi
new file mode 100644
index 0000000..a1e503a
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.xmi
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<states:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:states="http://ocl.eclipse.org/tutorial/eclipsecon2011/States" name="flattened.compound.states">
+ <machines name="Outer">
+ <events name="RIGHT"/>
+ <events name="START"/>
+ <events name="LEFT"/>
+ <events name="STOP"/>
+ <states xsi:type="states:SimpleState" initial="true" name="Start" value="4">
+ <transitions event="//@machines.0/@events.1" state="//@machines.0/@states.3"/>
+ </states>
+ <states xsi:type="states:SimpleState" name="Stop" value="5">
+ <transitions event="//@machines.0/@events.3" state="//@machines.0/@states.5"/>
+ </states>
+ <states xsi:type="states:SimpleState" name="CompoundA_Right">
+ <transitions event="//@machines.0/@events.0" state="//@machines.0/@states.3"/>
+ <transitions event="//@machines.0/@events.1" state="//@machines.0/@states.1"/>
+ </states>
+ <states xsi:type="states:SimpleState" name="CompoundA_Left" value="1">
+ <transitions event="//@machines.0/@events.2" state="//@machines.0/@states.2"/>
+ <transitions event="//@machines.0/@events.1" state="//@machines.0/@states.1"/>
+ </states>
+ <states xsi:type="states:SimpleState" name="CompoundB_Right">
+ <transitions event="//@machines.0/@events.0" state="//@machines.0/@states.5"/>
+ <transitions event="//@machines.0/@events.3" state="//@machines.0/@states.1"/>
+ </states>
+ <states xsi:type="states:SimpleState" name="CompoundB_Left" value="1">
+ <transitions event="//@machines.0/@events.2" state="//@machines.0/@states.4"/>
+ <transitions event="//@machines.0/@events.3" state="//@machines.0/@states.1"/>
+ </states>
+ </machines>
+</states:Module>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Machine.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Machine.java
new file mode 100644
index 0000000..3e85b74
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Machine.java
@@ -0,0 +1,34 @@
+package simple.states;
+
+public class Machine
+{
+ public interface State
+ {
+ public void doSTART();
+ public void doSTOP();
+
+ enum STATES
+ {
+ STATE_Start,
+ STATE_Stop
+ }
+ }
+
+ private final State[] states = new State[] {
+ new Start(this),
+ new Stop(this)
+ };
+
+ private State state;
+
+ public Machine() {
+ setState(State.STATES.STATE_Start);
+ }
+
+ public void setState(State.STATES state) {
+ this.state = states[state.ordinal()];
+ }
+
+ public void doSTART() { state.doSTART(); }
+ public void doSTOP() { state.doSTOP(); }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Start.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Start.java
new file mode 100644
index 0000000..be523be
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Start.java
@@ -0,0 +1,10 @@
+package simple.states;
+
+public class Start implements Machine.State {
+ private final Machine sm;
+ public Start(Machine sm) {
+ this.sm = sm;
+ }
+ public void doSTART()
+ { sm.setState(STATES.STATE_Start); }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Stop.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Stop.java
new file mode 100644
index 0000000..490a1e1
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Stop.java
@@ -0,0 +1,11 @@
+package simple.states;
+
+public class Stop implements Machine.State
+{
+ private final Machine sm;
+
+ public Stop(Machine sm) {
+ this.sm = sm;
+ }
+ public void doSTOP() { sm.setState(STATES.STATE_Stop); }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/.project b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/.project
new file mode 100644
index 0000000..e0416d2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/.settings/org.eclipse.ocl.modelregistry b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/.settings/org.eclipse.ocl.modelregistry
new file mode 100644
index 0000000..97607db
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/.settings/org.eclipse.ocl.modelregistry
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="ASCII"?>
+<mreg:ModelRegistrySettings xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:mreg="http://www.eclipse.org/ocl/1.0/ModelRegistry">
+ <resource name="">
+ <entry accessor="http://ocl.eclipse.org/tutorial/eclipsecon2011/States" kind="URI" uri="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore"/>
+ </resource>
+</mreg:ModelRegistrySettings>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/META-INF/MANIFEST.MF b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..cd790ff
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/META-INF/MANIFEST.MF
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EclipseCon 2011 Tutorial States OCL Constraints
+Bundle-SymbolicName: org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl
+Bundle-Version: 1.0.0
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/build.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/build.properties
new file mode 100644
index 0000000..5f22cdd
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/build.properties
@@ -0,0 +1 @@
+bin.includes = META-INF/
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/model/States.ocl b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/model/States.ocl
new file mode 100644
index 0000000..f8d69ed
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/model/States.ocl
@@ -0,0 +1,26 @@
+import 'http://ocl.eclipse.org/tutorial/eclipsecon2011/States'
+
+package states
+
+context Statemachine
+inv HasInitialState('No initial state'):
+ states->exists(s : State | s.initial)
+
+context SimpleState
+def: asError(verdict : Boolean) : Boolean =
+ if verdict then true else null endif
+def: getStatemachine() : Statemachine =
+ Statemachine.allInstances()->any(states->includes(self))
+inv EveryEventIsHandled((getStatemachine().events->asSet() - self.transitions.event->asSet())->iterate(e : Event; s : String = 'The following events are not handled:' | s + ' ' + e.name)):
+ (getStatemachine().events->asSet() - self.transitions.event->asSet())->isEmpty()
+inv UniqueInitialState('There is more than one initial state'):
+-- initial implies
+-- let states : Set(State) = Statemachine.allInstances()->any(states->includes(self))
+-- in states->select(initial)->size() = 1
+ initial implies getStatemachine().states->select(initial)->size() = 1
+--inv NameLength('\'' + name + '\' has ' + name.size().toString() + ' characters when at least 4 wanted'):
+-- name.size() >= 4
+--inv NameIsLowerCase('\'' + name + '\' must be Leading Uppercase'):
+-- let firstLetter : String = name.substring(1,1) in firstLetter.toUpperCase() = firstLetter
+
+endpackage
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.classpath b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.classpath
new file mode 100644
index 0000000..59cf397
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.cvsignore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.cvsignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.project b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.project
new file mode 100644
index 0000000..eaabe72
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ocl.tutorial.eclipsecon2011.states.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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.core.resources.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..52164b2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Aug 18 18:37:57 CEST 2009
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.core.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0804042
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,366 @@
+#Wed Oct 14 22:36:22 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=disabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.launching.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..cd7271f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.ui.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..f6caf59
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,118 @@
+#Wed Oct 14 22:36:24 CEST 2009
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=false
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_Xtext
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_'Xtext'
+formatter_settings_version=11
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"></template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"></template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"></template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} itemis AG (http\://www.itemis.eu) and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *******************************************************************************/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user} - Initial contribution and API\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"></template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"></template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"></template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"></template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=false
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.pde.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..2bd5814
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,25 @@
+#Wed Aug 12 21:14:13 CEST 2009
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/META-INF/MANIFEST.MF b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..081b4de
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EclipseCon 2011 Tutorial Xtext Editor UI
+Bundle-SymbolicName: org.eclipse.ocl.tutorial.eclipsecon2011.states.ui;singleton:=true
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-Version: 1.0.0
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.ocl.tutorial.eclipsecon2011.states,
+ org.eclipse.xtext.ui;bundle-version="2.0.0",
+ org.eclipse.ui.editors,
+ org.eclipse.ui,
+ org.eclipse.xtext.ui.shared;bundle-version="2.0.0",
+ org.antlr.runtime
+Bundle-Activator: org.eclipse.ocl.tutorial.eclipsecon2011.StatesActivator
+Bundle-ActivationPolicy: lazy
+Import-Package: org.apache.log4j
+Export-Package: org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/about.html b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/about.html
new file mode 100644
index 0000000..1b8f940
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/build.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/build.properties
new file mode 100644
index 0000000..6beed05
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/,\
+ src-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ templates/,\
+ about.html
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/icons/editor.gif b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/icons/editor.gif
new file mode 100644
index 0000000..2a2b4b6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/icons/editor.gif
Binary files differ
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/plugin.xml b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/plugin.xml
new file mode 100644
index 0000000..5b277a0
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/plugin.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="states"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.States"
+ name="States Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.States.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.ocl.tutorial.eclipsecon2011.States.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.States.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.ocl.tutorial.eclipsecon2011.States.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.ocl.tutorial.eclipsecon2011.States"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.States"
+ name="States">
+ <keywordReference id="org.eclipse.ocl.tutorial.eclipsecon2011.ui.keyword_States"/>
+ </page>
+ <page
+ category="org.eclipse.ocl.tutorial.eclipsecon2011.States"
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.States.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.ocl.tutorial.eclipsecon2011.ui.keyword_States"/>
+ </page>
+ <page
+ category="org.eclipse.ocl.tutorial.eclipsecon2011.States"
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.States.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.ocl.tutorial.eclipsecon2011.ui.keyword_States"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.ui.keyword_States"
+ label="States"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.States.validate"
+ name="Validate">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.ocl.tutorial.eclipsecon2011.States.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.States.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.ocl.tutorial.eclipsecon2011.States.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.States.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="states">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="states">
+ </resourceServiceProvider>
+ </extension>
+
+
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.States.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.ocl.tutorial.eclipsecon2011.States.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+
+</plugin>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/AbstractStatesUiModule.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/AbstractStatesUiModule.java
new file mode 100644
index 0000000..02d3bb0
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/AbstractStatesUiModule.java
@@ -0,0 +1,87 @@
+
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractStatesUiModule extends DefaultUiModule {
+
+ public AbstractStatesUiModule(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.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalStatesLexer.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.ui.generator.labeling.LabelProviderFragment
+ public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.labeling.StatesLabelProvider.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.ocl.tutorial.eclipsecon2011.ui.labeling.StatesDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.outline.StatesOutlineTreeProvider.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.ocl.tutorial.eclipsecon2011.ui.outline.StatesOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.StatesProposalProvider.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.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.StatesParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalStatesLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalStatesLexer.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.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalStatesLexer.class);
+ }
+
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/StatesExecutableExtensionFactory.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/StatesExecutableExtensionFactory.java
new file mode 100644
index 0000000..9e8b40d
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/StatesExecutableExtensionFactory.java
@@ -0,0 +1,27 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class StatesExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.internal.StatesActivator.getInstance().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.internal.StatesActivator.getInstance().getInjector("org.eclipse.ocl.tutorial.eclipsecon2011.States");
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/AbstractStatesProposalProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/AbstractStatesProposalProvider.java
new file mode 100644
index 0000000..5d48cd7
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/AbstractStatesProposalProvider.java
@@ -0,0 +1,109 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.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 AbstractStatesProposalProvider extends TerminalsProposalProvider {
+
+ public void completeModule_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor);
+ completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor);
+ }
+ public void completeModule_Machines(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_Initial(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void completeStatemachine_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_Events(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_DbgName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeEvent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSimpleState_Initial(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void completeSimpleState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSimpleState_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSimpleState_Transitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSimpleState_DbgName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompoundState_Initial(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void completeCompoundState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompoundState_Machine(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompoundState_Transitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompoundState_DbgName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransition_Event(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransition_State(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransition_DbgName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_Module(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Statemachine(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Event(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_State(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SimpleState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CompoundState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Transition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/StatesParser.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/StatesParser.java
new file mode 100644
index 0000000..38dff85
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/StatesParser.java
@@ -0,0 +1,104 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.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.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess;
+
+public class StatesParser extends AbstractContentAssistParser {
+
+ @Inject
+ private StatesGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalStatesParser createParser() {
+ org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalStatesParser result = new org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalStatesParser(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.getModuleAccess().getNameAlternatives_1_0(), "rule__Module__NameAlternatives_1_0");
+ put(grammarAccess.getStateAccess().getAlternatives(), "rule__State__Alternatives");
+ put(grammarAccess.getModuleAccess().getGroup(), "rule__Module__Group__0");
+ put(grammarAccess.getStatemachineAccess().getGroup(), "rule__Statemachine__Group__0");
+ put(grammarAccess.getStatemachineAccess().getGroup_3(), "rule__Statemachine__Group_3__0");
+ put(grammarAccess.getStatemachineAccess().getGroup_10(), "rule__Statemachine__Group_10__0");
+ put(grammarAccess.getSimpleStateAccess().getGroup(), "rule__SimpleState__Group__0");
+ put(grammarAccess.getSimpleStateAccess().getGroup_3(), "rule__SimpleState__Group_3__0");
+ put(grammarAccess.getSimpleStateAccess().getGroup_7(), "rule__SimpleState__Group_7__0");
+ put(grammarAccess.getCompoundStateAccess().getGroup(), "rule__CompoundState__Group__0");
+ put(grammarAccess.getCompoundStateAccess().getGroup_9(), "rule__CompoundState__Group_9__0");
+ put(grammarAccess.getTransitionAccess().getGroup(), "rule__Transition__Group__0");
+ put(grammarAccess.getTransitionAccess().getGroup_3(), "rule__Transition__Group_3__0");
+ put(grammarAccess.getModuleAccess().getNameAssignment_1(), "rule__Module__NameAssignment_1");
+ put(grammarAccess.getModuleAccess().getMachinesAssignment_2(), "rule__Module__MachinesAssignment_2");
+ put(grammarAccess.getStatemachineAccess().getInitialAssignment_0(), "rule__Statemachine__InitialAssignment_0");
+ put(grammarAccess.getStatemachineAccess().getNameAssignment_2(), "rule__Statemachine__NameAssignment_2");
+ put(grammarAccess.getStatemachineAccess().getValueAssignment_3_1(), "rule__Statemachine__ValueAssignment_3_1");
+ put(grammarAccess.getStatemachineAccess().getEventsAssignment_6(), "rule__Statemachine__EventsAssignment_6");
+ put(grammarAccess.getStatemachineAccess().getStatesAssignment_8(), "rule__Statemachine__StatesAssignment_8");
+ put(grammarAccess.getStatemachineAccess().getDbgNameAssignment_10_1(), "rule__Statemachine__DbgNameAssignment_10_1");
+ put(grammarAccess.getEventAccess().getNameAssignment(), "rule__Event__NameAssignment");
+ put(grammarAccess.getSimpleStateAccess().getInitialAssignment_0(), "rule__SimpleState__InitialAssignment_0");
+ put(grammarAccess.getSimpleStateAccess().getNameAssignment_2(), "rule__SimpleState__NameAssignment_2");
+ put(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1(), "rule__SimpleState__ValueAssignment_3_1");
+ put(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5(), "rule__SimpleState__TransitionsAssignment_5");
+ put(grammarAccess.getSimpleStateAccess().getDbgNameAssignment_7_1(), "rule__SimpleState__DbgNameAssignment_7_1");
+ put(grammarAccess.getCompoundStateAccess().getInitialAssignment_1(), "rule__CompoundState__InitialAssignment_1");
+ put(grammarAccess.getCompoundStateAccess().getNameAssignment_3(), "rule__CompoundState__NameAssignment_3");
+ put(grammarAccess.getCompoundStateAccess().getMachineAssignment_5(), "rule__CompoundState__MachineAssignment_5");
+ put(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7(), "rule__CompoundState__TransitionsAssignment_7");
+ put(grammarAccess.getCompoundStateAccess().getDbgNameAssignment_9_1(), "rule__CompoundState__DbgNameAssignment_9_1");
+ put(grammarAccess.getTransitionAccess().getEventAssignment_0(), "rule__Transition__EventAssignment_0");
+ put(grammarAccess.getTransitionAccess().getStateAssignment_2(), "rule__Transition__StateAssignment_2");
+ put(grammarAccess.getTransitionAccess().getDbgNameAssignment_3_1(), "rule__Transition__DbgNameAssignment_3_1");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ try {
+ org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalStatesParser typedParser = (org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalStatesParser) parser;
+ typedParser.entryRuleModule();
+ 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 StatesGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(StatesGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g
new file mode 100644
index 0000000..70ce9bc
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g
@@ -0,0 +1,2205 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStates;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+
+}
+
+@lexer::header {
+package org.eclipse.ocl.tutorial.eclipsecon2011.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.ocl.tutorial.eclipsecon2011.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.xtext.parsetree.*;
+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.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess;
+
+}
+
+@parser::members {
+
+ private StatesGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(StatesGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+}
+
+
+
+
+// Entry rule entryRuleModule
+entryRuleModule
+:
+{ before(grammarAccess.getModuleRule()); }
+ ruleModule
+{ after(grammarAccess.getModuleRule()); }
+ EOF
+;
+
+// Rule Module
+ruleModule
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getModuleAccess().getGroup()); }
+(rule__Module__Group__0)
+{ after(grammarAccess.getModuleAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStatemachine
+entryRuleStatemachine
+:
+{ before(grammarAccess.getStatemachineRule()); }
+ ruleStatemachine
+{ after(grammarAccess.getStatemachineRule()); }
+ EOF
+;
+
+// Rule Statemachine
+ruleStatemachine
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup()); }
+(rule__Statemachine__Group__0)
+{ after(grammarAccess.getStatemachineAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent
+:
+{ before(grammarAccess.getEventRule()); }
+ ruleEvent
+{ after(grammarAccess.getEventRule()); }
+ EOF
+;
+
+// Rule Event
+ruleEvent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getEventAccess().getNameAssignment()); }
+(rule__Event__NameAssignment)
+{ after(grammarAccess.getEventAccess().getNameAssignment()); }
+)
+
+;
+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().getAlternatives()); }
+(rule__State__Alternatives)
+{ after(grammarAccess.getStateAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSimpleState
+entryRuleSimpleState
+:
+{ before(grammarAccess.getSimpleStateRule()); }
+ ruleSimpleState
+{ after(grammarAccess.getSimpleStateRule()); }
+ EOF
+;
+
+// Rule SimpleState
+ruleSimpleState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getSimpleStateAccess().getGroup()); }
+(rule__SimpleState__Group__0)
+{ after(grammarAccess.getSimpleStateAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleCompoundState
+entryRuleCompoundState
+:
+{ before(grammarAccess.getCompoundStateRule()); }
+ ruleCompoundState
+{ after(grammarAccess.getCompoundStateRule()); }
+ EOF
+;
+
+// Rule CompoundState
+ruleCompoundState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getCompoundStateAccess().getGroup()); }
+(rule__CompoundState__Group__0)
+{ after(grammarAccess.getCompoundStateAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTransition
+entryRuleTransition
+:
+{ before(grammarAccess.getTransitionRule()); }
+ ruleTransition
+{ after(grammarAccess.getTransitionRule()); }
+ EOF
+;
+
+// Rule Transition
+ruleTransition
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getTransitionAccess().getGroup()); }
+(rule__Transition__Group__0)
+{ after(grammarAccess.getTransitionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__Module__NameAlternatives_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0_0()); }
+ RULE_STRING
+{ after(grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0_0()); }
+)
+
+ |(
+{ before(grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0_1()); }
+ RULE_ID
+{ after(grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0()); }
+ ruleSimpleState
+{ after(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1()); }
+ ruleCompoundState
+{ after(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+rule__Module__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__0__Impl
+ rule__Module__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getModuleKeyword_0()); }
+
+ 'module'
+
+{ after(grammarAccess.getModuleAccess().getModuleKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__1__Impl
+ rule__Module__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getNameAssignment_1()); }
+(rule__Module__NameAssignment_1)
+{ after(grammarAccess.getModuleAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getMachinesAssignment_2()); }
+(rule__Module__MachinesAssignment_2)*
+{ after(grammarAccess.getModuleAccess().getMachinesAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Statemachine__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__0__Impl
+ rule__Statemachine__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getInitialAssignment_0()); }
+(rule__Statemachine__InitialAssignment_0)?
+{ after(grammarAccess.getStatemachineAccess().getInitialAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__1__Impl
+ rule__Statemachine__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatemachineKeyword_1()); }
+
+ 'statemachine'
+
+{ after(grammarAccess.getStatemachineAccess().getStatemachineKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__2__Impl
+ rule__Statemachine__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getNameAssignment_2()); }
+(rule__Statemachine__NameAssignment_2)
+{ after(grammarAccess.getStatemachineAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__3__Impl
+ rule__Statemachine__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup_3()); }
+(rule__Statemachine__Group_3__0)?
+{ after(grammarAccess.getStatemachineAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__4__Impl
+ rule__Statemachine__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4()); }
+
+ '{'
+
+{ after(grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__5__Impl
+ rule__Statemachine__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsKeyword_5()); }
+
+ 'events'
+
+{ after(grammarAccess.getStatemachineAccess().getEventsKeyword_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__6__Impl
+ rule__Statemachine__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsAssignment_6()); }
+(rule__Statemachine__EventsAssignment_6)*
+{ after(grammarAccess.getStatemachineAccess().getEventsAssignment_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__7__Impl
+ rule__Statemachine__Group__8
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getSemicolonKeyword_7()); }
+
+ ';'
+
+{ after(grammarAccess.getStatemachineAccess().getSemicolonKeyword_7()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__8
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__8__Impl
+ rule__Statemachine__Group__9
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__8__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatesAssignment_8()); }
+(rule__Statemachine__StatesAssignment_8)*
+{ after(grammarAccess.getStatemachineAccess().getStatesAssignment_8()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__9
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__9__Impl
+ rule__Statemachine__Group__10
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__9__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9()); }
+
+ '}'
+
+{ after(grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__10
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__10__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__10__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup_10()); }
+(rule__Statemachine__Group_10__0)?
+{ after(grammarAccess.getStatemachineAccess().getGroup_10()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Statemachine__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_3__0__Impl
+ rule__Statemachine__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getValueKeyword_3_0()); }
+
+ 'value'
+
+{ after(grammarAccess.getStatemachineAccess().getValueKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getValueAssignment_3_1()); }
+(rule__Statemachine__ValueAssignment_3_1)
+{ after(grammarAccess.getStatemachineAccess().getValueAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Statemachine__Group_10__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_10__0__Impl
+ rule__Statemachine__Group_10__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_10__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getDebugKeyword_10_0()); }
+
+ 'debug'
+
+{ after(grammarAccess.getStatemachineAccess().getDebugKeyword_10_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_10__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_10__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_10__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getDbgNameAssignment_10_1()); }
+(rule__Statemachine__DbgNameAssignment_10_1)
+{ after(grammarAccess.getStatemachineAccess().getDbgNameAssignment_10_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SimpleState__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__0__Impl
+ rule__SimpleState__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getInitialAssignment_0()); }
+(rule__SimpleState__InitialAssignment_0)?
+{ after(grammarAccess.getSimpleStateAccess().getInitialAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__1__Impl
+ rule__SimpleState__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getStateKeyword_1()); }
+
+ 'state'
+
+{ after(grammarAccess.getSimpleStateAccess().getStateKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__2__Impl
+ rule__SimpleState__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getNameAssignment_2()); }
+(rule__SimpleState__NameAssignment_2)
+{ after(grammarAccess.getSimpleStateAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__3__Impl
+ rule__SimpleState__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getGroup_3()); }
+(rule__SimpleState__Group_3__0)?
+{ after(grammarAccess.getSimpleStateAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__4__Impl
+ rule__SimpleState__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4()); }
+
+ '{'
+
+{ after(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__5__Impl
+ rule__SimpleState__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5()); }
+(rule__SimpleState__TransitionsAssignment_5)*
+{ after(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__6__Impl
+ rule__SimpleState__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6()); }
+
+ '}'
+
+{ after(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__7__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getGroup_7()); }
+(rule__SimpleState__Group_7__0)?
+{ after(grammarAccess.getSimpleStateAccess().getGroup_7()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SimpleState__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group_3__0__Impl
+ rule__SimpleState__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getValueKeyword_3_0()); }
+
+ 'value'
+
+{ after(grammarAccess.getSimpleStateAccess().getValueKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1()); }
+(rule__SimpleState__ValueAssignment_3_1)
+{ after(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SimpleState__Group_7__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group_7__0__Impl
+ rule__SimpleState__Group_7__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group_7__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getDebugKeyword_7_0()); }
+
+ 'debug'
+
+{ after(grammarAccess.getSimpleStateAccess().getDebugKeyword_7_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group_7__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group_7__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group_7__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getDbgNameAssignment_7_1()); }
+(rule__SimpleState__DbgNameAssignment_7_1)
+{ after(grammarAccess.getSimpleStateAccess().getDbgNameAssignment_7_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__CompoundState__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__0__Impl
+ rule__CompoundState__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getCompoundKeyword_0()); }
+
+ 'compound'
+
+{ after(grammarAccess.getCompoundStateAccess().getCompoundKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__1__Impl
+ rule__CompoundState__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getInitialAssignment_1()); }
+(rule__CompoundState__InitialAssignment_1)?
+{ after(grammarAccess.getCompoundStateAccess().getInitialAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__2__Impl
+ rule__CompoundState__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getStateKeyword_2()); }
+
+ 'state'
+
+{ after(grammarAccess.getCompoundStateAccess().getStateKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__3__Impl
+ rule__CompoundState__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getNameAssignment_3()); }
+(rule__CompoundState__NameAssignment_3)
+{ after(grammarAccess.getCompoundStateAccess().getNameAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__4__Impl
+ rule__CompoundState__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getMachineKeyword_4()); }
+
+ 'machine'
+
+{ after(grammarAccess.getCompoundStateAccess().getMachineKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__5__Impl
+ rule__CompoundState__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getMachineAssignment_5()); }
+(rule__CompoundState__MachineAssignment_5)
+{ after(grammarAccess.getCompoundStateAccess().getMachineAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__6__Impl
+ rule__CompoundState__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6()); }
+
+ '{'
+
+{ after(grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__7__Impl
+ rule__CompoundState__Group__8
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7()); }
+(rule__CompoundState__TransitionsAssignment_7)*
+{ after(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__8
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__8__Impl
+ rule__CompoundState__Group__9
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__8__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8()); }
+
+ '}'
+
+{ after(grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__9
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__9__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__9__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getGroup_9()); }
+(rule__CompoundState__Group_9__0)?
+{ after(grammarAccess.getCompoundStateAccess().getGroup_9()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__CompoundState__Group_9__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group_9__0__Impl
+ rule__CompoundState__Group_9__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group_9__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getDebugKeyword_9_0()); }
+
+ 'debug'
+
+{ after(grammarAccess.getCompoundStateAccess().getDebugKeyword_9_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group_9__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group_9__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group_9__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getDbgNameAssignment_9_1()); }
+(rule__CompoundState__DbgNameAssignment_9_1)
+{ after(grammarAccess.getCompoundStateAccess().getDbgNameAssignment_9_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Transition__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__0__Impl
+ rule__Transition__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEventAssignment_0()); }
+(rule__Transition__EventAssignment_0)
+{ after(grammarAccess.getTransitionAccess().getEventAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Transition__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__1__Impl
+ rule__Transition__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+
+ '=>'
+
+{ after(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Transition__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__2__Impl
+ rule__Transition__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getStateAssignment_2()); }
+(rule__Transition__StateAssignment_2)
+{ after(grammarAccess.getTransitionAccess().getStateAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Transition__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getGroup_3()); }
+(rule__Transition__Group_3__0)?
+{ after(grammarAccess.getTransitionAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__Transition__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group_3__0__Impl
+ rule__Transition__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getDebugKeyword_3_0()); }
+
+ 'debug'
+
+{ after(grammarAccess.getTransitionAccess().getDebugKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Transition__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getDbgNameAssignment_3_1()); }
+(rule__Transition__DbgNameAssignment_3_1)
+{ after(grammarAccess.getTransitionAccess().getDbgNameAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__Module__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getNameAlternatives_1_0()); }
+(rule__Module__NameAlternatives_1_0)
+{ after(grammarAccess.getModuleAccess().getNameAlternatives_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__MachinesAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0()); }
+ ruleStatemachine{ after(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__InitialAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0()); }
+(
+{ before(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0()); }
+
+ 'initial'
+
+{ after(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0()); }
+ RULE_ID{ after(grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__ValueAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0()); }
+ RULE_INT{ after(grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__EventsAssignment_6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0()); }
+ ruleEvent{ after(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__StatesAssignment_8
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0()); }
+ ruleState{ after(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__DbgNameAssignment_10_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getDbgNameIDTerminalRuleCall_10_1_0()); }
+ RULE_ID{ after(grammarAccess.getStatemachineAccess().getDbgNameIDTerminalRuleCall_10_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Event__NameAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0()); }
+ RULE_ID{ after(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__InitialAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0()); }
+(
+{ before(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0()); }
+
+ 'initial'
+
+{ after(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0()); }
+ RULE_ID{ after(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__ValueAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0()); }
+ RULE_INT{ after(grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__TransitionsAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0()); }
+ ruleTransition{ after(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__DbgNameAssignment_7_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getDbgNameIDTerminalRuleCall_7_1_0()); }
+ RULE_ID{ after(grammarAccess.getSimpleStateAccess().getDbgNameIDTerminalRuleCall_7_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__InitialAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0()); }
+(
+{ before(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0()); }
+
+ 'initial'
+
+{ after(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0()); }
+)
+
+{ after(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__NameAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0()); }
+ RULE_ID{ after(grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__MachineAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0()); }
+(
+{ before(grammarAccess.getCompoundStateAccess().getMachineStatemachineIDTerminalRuleCall_5_0_1()); }
+ RULE_ID{ after(grammarAccess.getCompoundStateAccess().getMachineStatemachineIDTerminalRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__TransitionsAssignment_7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0()); }
+ ruleTransition{ after(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__DbgNameAssignment_9_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getDbgNameIDTerminalRuleCall_9_1_0()); }
+ RULE_ID{ after(grammarAccess.getCompoundStateAccess().getDbgNameIDTerminalRuleCall_9_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__EventAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0()); }
+(
+{ before(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1()); }
+ RULE_ID{ after(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1()); }
+)
+{ after(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__StateAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0()); }
+(
+{ before(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1()); }
+ RULE_ID{ after(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__DbgNameAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getDbgNameIDTerminalRuleCall_3_1_0()); }
+ RULE_ID{ after(grammarAccess.getTransitionAccess().getDbgNameIDTerminalRuleCall_3_1_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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.tokens b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.tokens
new file mode 100644
index 0000000..de3b5ce
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.tokens
@@ -0,0 +1,33 @@
+RULE_ML_COMMENT=7
+T__12=12
+RULE_ID=5
+T__23=23
+T__20=20
+T__13=13
+RULE_STRING=4
+T__21=21
+T__19=19
+T__14=14
+T__11=11
+T__22=22
+RULE_WS=9
+T__17=17
+RULE_INT=6
+T__16=16
+RULE_ANY_OTHER=10
+RULE_SL_COMMENT=8
+T__18=18
+T__15=15
+'statemachine'=12
+'compound'=20
+'events'=14
+'debug'=18
+'=>'=22
+'machine'=21
+'{'=13
+';'=15
+'module'=11
+'initial'=23
+'value'=17
+'state'=19
+'}'=16
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStatesLexer.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStatesLexer.java
new file mode 100644
index 0000000..8e1ba67
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStatesLexer.java
@@ -0,0 +1,1222 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.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 InternalStatesLexer extends Lexer {
+ public static final int RULE_ML_COMMENT=7;
+ public static final int RULE_ID=5;
+ public static final int T__12=12;
+ public static final int T__23=23;
+ public static final int T__20=20;
+ public static final int T__13=13;
+ public static final int RULE_STRING=4;
+ public static final int T__21=21;
+ public static final int T__19=19;
+ public static final int T__14=14;
+ public static final int T__11=11;
+ public static final int T__22=22;
+ public static final int RULE_WS=9;
+ public static final int T__17=17;
+ public static final int EOF=-1;
+ public static final int RULE_INT=6;
+ public static final int T__16=16;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__18=18;
+ public static final int T__15=15;
+
+ // delegates
+ // delegators
+
+ public InternalStatesLexer() {;}
+ public InternalStatesLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalStatesLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:11:7: ( 'module' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:11:9: 'module'
+ {
+ match("module");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:12:7: ( 'statemachine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:12:9: 'statemachine'
+ {
+ match("statemachine");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:13:7: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:13:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:14:7: ( 'events' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:14:9: 'events'
+ {
+ match("events");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:15:7: ( ';' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:15:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:16:7: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:16:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:17:7: ( 'value' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:17:9: 'value'
+ {
+ match("value");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:18:7: ( 'debug' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:18:9: 'debug'
+ {
+ match("debug");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:19:7: ( 'state' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:19:9: 'state'
+ {
+ match("state");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:20:7: ( 'compound' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:20:9: 'compound'
+ {
+ match("compound");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:21:7: ( 'machine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:21:9: 'machine'
+ {
+ match("machine");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:22:7: ( '=>' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:22:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "T__23"
+ public final void mT__23() throws RecognitionException {
+ try {
+ int _type = T__23;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:23:7: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:23:9: 'initial'
+ {
+ match("initial");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2191:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2191:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2191:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2191: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2191: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2193:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2193:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2193: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2193: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2195: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2197:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2197:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2197: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2197: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2199:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2199:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2199: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2199: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2199: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2199:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2199:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2199: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2201:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2201:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2201: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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2203:16: ( . )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2203:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.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.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:70: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:76: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:82: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:88: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:96: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:105: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:117: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:133: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:149: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1:157: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\2\26\1\uffff\1\26\2\uffff\3\26\1\23\1\26\1\23\2\uffff"+
+ "\3\23\2\uffff\2\26\1\uffff\1\26\1\uffff\1\26\2\uffff\3\26\1\uffff"+
+ "\1\26\5\uffff\22\26\1\101\1\26\1\103\1\104\2\26\1\107\2\26\1\uffff"+
+ "\1\112\2\uffff\2\26\1\uffff\1\115\1\26\1\uffff\1\26\1\120\1\uffff"+
+ "\1\26\1\122\1\uffff\1\26\1\uffff\2\26\1\126\1\uffff";
+ static final String DFA12_eofS =
+ "\127\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\141\1\164\1\uffff\1\166\2\uffff\1\141\1\145\1\157\1\76\1"+
+ "\156\1\101\2\uffff\2\0\1\52\2\uffff\1\144\1\143\1\uffff\1\141\1"+
+ "\uffff\1\145\2\uffff\1\154\1\142\1\155\1\uffff\1\151\5\uffff\1\165"+
+ "\1\150\1\164\1\156\2\165\1\160\1\164\1\154\1\151\1\145\1\164\1\145"+
+ "\1\147\1\157\1\151\1\145\1\156\1\60\1\163\2\60\1\165\1\141\1\60"+
+ "\1\145\1\141\1\uffff\1\60\2\uffff\1\156\1\154\1\uffff\1\60\1\143"+
+ "\1\uffff\1\144\1\60\1\uffff\1\150\1\60\1\uffff\1\151\1\uffff\1\156"+
+ "\1\145\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\157\1\164\1\uffff\1\166\2\uffff\1\141\1\145\1\157\1"+
+ "\76\1\156\1\172\2\uffff\2\uffff\1\57\2\uffff\1\144\1\143\1\uffff"+
+ "\1\141\1\uffff\1\145\2\uffff\1\154\1\142\1\155\1\uffff\1\151\5\uffff"+
+ "\1\165\1\150\1\164\1\156\2\165\1\160\1\164\1\154\1\151\1\145\1\164"+
+ "\1\145\1\147\1\157\1\151\1\145\1\156\1\172\1\163\2\172\1\165\1\141"+
+ "\1\172\1\145\1\141\1\uffff\1\172\2\uffff\1\156\1\154\1\uffff\1\172"+
+ "\1\143\1\uffff\1\144\1\172\1\uffff\1\150\1\172\1\uffff\1\151\1\uffff"+
+ "\1\156\1\145\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\3\uffff\1\3\1\uffff\1\5\1\6\6\uffff\1\16\1\17\3\uffff\1\23\1\24"+
+ "\2\uffff\1\16\1\uffff\1\3\1\uffff\1\5\1\6\3\uffff\1\14\1\uffff\1"+
+ "\17\1\20\1\21\1\22\1\23\33\uffff\1\11\1\uffff\1\7\1\10\2\uffff\1"+
+ "\1\2\uffff\1\4\2\uffff\1\13\2\uffff\1\15\1\uffff\1\12\3\uffff\1"+
+ "\2";
+ static final String DFA12_specialS =
+ "\1\1\16\uffff\1\0\1\2\106\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\23\2\22\2\23\1\22\22\23\1\22\1\23\1\17\4\23\1\20\7\23\1"+
+ "\21\12\16\1\23\1\5\1\23\1\12\3\23\32\15\3\23\1\14\1\15\1\23"+
+ "\2\15\1\11\1\10\1\4\3\15\1\13\3\15\1\1\5\15\1\2\2\15\1\7\4\15"+
+ "\1\3\1\23\1\6\uff82\23",
+ "\1\25\15\uffff\1\24",
+ "\1\27",
+ "",
+ "\1\31",
+ "",
+ "",
+ "\1\34",
+ "\1\35",
+ "\1\36",
+ "\1\37",
+ "\1\40",
+ "\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "",
+ "\0\42",
+ "\0\42",
+ "\1\43\4\uffff\1\44",
+ "",
+ "",
+ "\1\46",
+ "\1\47",
+ "",
+ "\1\50",
+ "",
+ "\1\51",
+ "",
+ "",
+ "\1\52",
+ "\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",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\14\26\1\100\15\26",
+ "\1\102",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\1\105",
+ "\1\106",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\1\110",
+ "\1\111",
+ "",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "",
+ "\1\113",
+ "\1\114",
+ "",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\1\116",
+ "",
+ "\1\117",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "\1\121",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "\1\123",
+ "",
+ "\1\124",
+ "\1\125",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ ""
+ };
+
+ 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_15 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_15>='\u0000' && LA12_15<='\uFFFF')) ) {s = 34;}
+
+ else s = 19;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='m') ) {s = 1;}
+
+ else if ( (LA12_0=='s') ) {s = 2;}
+
+ else if ( (LA12_0=='{') ) {s = 3;}
+
+ else if ( (LA12_0=='e') ) {s = 4;}
+
+ else if ( (LA12_0==';') ) {s = 5;}
+
+ else if ( (LA12_0=='}') ) {s = 6;}
+
+ else if ( (LA12_0=='v') ) {s = 7;}
+
+ else if ( (LA12_0=='d') ) {s = 8;}
+
+ else if ( (LA12_0=='c') ) {s = 9;}
+
+ else if ( (LA12_0=='=') ) {s = 10;}
+
+ else if ( (LA12_0=='i') ) {s = 11;}
+
+ else if ( (LA12_0=='^') ) {s = 12;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='b')||(LA12_0>='f' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='l')||(LA12_0>='n' && LA12_0<='r')||(LA12_0>='t' && LA12_0<='u')||(LA12_0>='w' && LA12_0<='z')) ) {s = 13;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 14;}
+
+ else if ( (LA12_0=='\"') ) {s = 15;}
+
+ else if ( (LA12_0=='\'') ) {s = 16;}
+
+ else if ( (LA12_0=='/') ) {s = 17;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 18;}
+
+ else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='.')||LA12_0==':'||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 19;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_16 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_16>='\u0000' && LA12_16<='\uFFFF')) ) {s = 34;}
+
+ else s = 19;
+
+ 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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStatesParser.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStatesParser.java
new file mode 100644
index 0000000..1583c02
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStatesParser.java
@@ -0,0 +1,5857 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.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.xtext.parsetree.*;
+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.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStatesParser extends AbstractInternalContentAssistParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'module'", "'statemachine'", "'{'", "'events'", "';'", "'}'", "'value'", "'debug'", "'state'", "'compound'", "'machine'", "'=>'", "'initial'"
+ };
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__12=12;
+ public static final int RULE_ID=5;
+ public static final int T__23=23;
+ public static final int T__20=20;
+ public static final int T__13=13;
+ public static final int RULE_STRING=4;
+ public static final int T__21=21;
+ public static final int T__19=19;
+ public static final int T__14=14;
+ public static final int T__11=11;
+ public static final int T__22=22;
+ public static final int RULE_WS=9;
+ public static final int T__17=17;
+ public static final int EOF=-1;
+ public static final int RULE_INT=6;
+ public static final int T__16=16;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__18=18;
+ public static final int T__15=15;
+
+ // delegates
+ // delegators
+
+
+ public InternalStatesParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalStatesParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalStatesParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g"; }
+
+
+
+ private StatesGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(StatesGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleModule"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:61:1: entryRuleModule : ruleModule EOF ;
+ public final void entryRuleModule() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:62:1: ( ruleModule EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:63:1: ruleModule EOF
+ {
+ before(grammarAccess.getModuleRule());
+ pushFollow(FOLLOW_ruleModule_in_entryRuleModule61);
+ ruleModule();
+
+ state._fsp--;
+
+ after(grammarAccess.getModuleRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModule68);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleModule"
+
+
+ // $ANTLR start "ruleModule"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:70:1: ruleModule : ( ( rule__Module__Group__0 ) ) ;
+ public final void ruleModule() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:74:2: ( ( ( rule__Module__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:75:1: ( ( rule__Module__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:75:1: ( ( rule__Module__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:76:1: ( rule__Module__Group__0 )
+ {
+ before(grammarAccess.getModuleAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:77:1: ( rule__Module__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:77:2: rule__Module__Group__0
+ {
+ pushFollow(FOLLOW_rule__Module__Group__0_in_ruleModule94);
+ rule__Module__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getModuleAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleModule"
+
+
+ // $ANTLR start "entryRuleStatemachine"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:89:1: entryRuleStatemachine : ruleStatemachine EOF ;
+ public final void entryRuleStatemachine() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:90:1: ( ruleStatemachine EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:91:1: ruleStatemachine EOF
+ {
+ before(grammarAccess.getStatemachineRule());
+ pushFollow(FOLLOW_ruleStatemachine_in_entryRuleStatemachine121);
+ ruleStatemachine();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStatemachine128);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleStatemachine"
+
+
+ // $ANTLR start "ruleStatemachine"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:98:1: ruleStatemachine : ( ( rule__Statemachine__Group__0 ) ) ;
+ public final void ruleStatemachine() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:102:2: ( ( ( rule__Statemachine__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:103:1: ( ( rule__Statemachine__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:103:1: ( ( rule__Statemachine__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:104:1: ( rule__Statemachine__Group__0 )
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:105:1: ( rule__Statemachine__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:105:2: rule__Statemachine__Group__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__0_in_ruleStatemachine154);
+ rule__Statemachine__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleStatemachine"
+
+
+ // $ANTLR start "entryRuleEvent"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:117:1: entryRuleEvent : ruleEvent EOF ;
+ public final void entryRuleEvent() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:118:1: ( ruleEvent EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:119:1: ruleEvent EOF
+ {
+ before(grammarAccess.getEventRule());
+ pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent181);
+ ruleEvent();
+
+ state._fsp--;
+
+ after(grammarAccess.getEventRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEvent188);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleEvent"
+
+
+ // $ANTLR start "ruleEvent"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:126:1: ruleEvent : ( ( rule__Event__NameAssignment ) ) ;
+ public final void ruleEvent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:130:2: ( ( ( rule__Event__NameAssignment ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:131:1: ( ( rule__Event__NameAssignment ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:131:1: ( ( rule__Event__NameAssignment ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:132:1: ( rule__Event__NameAssignment )
+ {
+ before(grammarAccess.getEventAccess().getNameAssignment());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:133:1: ( rule__Event__NameAssignment )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:133:2: rule__Event__NameAssignment
+ {
+ pushFollow(FOLLOW_rule__Event__NameAssignment_in_ruleEvent214);
+ rule__Event__NameAssignment();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getEventAccess().getNameAssignment());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleEvent"
+
+
+ // $ANTLR start "entryRuleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:145:1: entryRuleState : ruleState EOF ;
+ public final void entryRuleState() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:146:1: ( ruleState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:147:1: ruleState EOF
+ {
+ before(grammarAccess.getStateRule());
+ pushFollow(FOLLOW_ruleState_in_entryRuleState241);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleState248);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleState"
+
+
+ // $ANTLR start "ruleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:154:1: ruleState : ( ( rule__State__Alternatives ) ) ;
+ public final void ruleState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:158:2: ( ( ( rule__State__Alternatives ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:159:1: ( ( rule__State__Alternatives ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:159:1: ( ( rule__State__Alternatives ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:160:1: ( rule__State__Alternatives )
+ {
+ before(grammarAccess.getStateAccess().getAlternatives());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:161:1: ( rule__State__Alternatives )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:161:2: rule__State__Alternatives
+ {
+ pushFollow(FOLLOW_rule__State__Alternatives_in_ruleState274);
+ rule__State__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleState"
+
+
+ // $ANTLR start "entryRuleSimpleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:173:1: entryRuleSimpleState : ruleSimpleState EOF ;
+ public final void entryRuleSimpleState() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:174:1: ( ruleSimpleState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:175:1: ruleSimpleState EOF
+ {
+ before(grammarAccess.getSimpleStateRule());
+ pushFollow(FOLLOW_ruleSimpleState_in_entryRuleSimpleState301);
+ ruleSimpleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getSimpleStateRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleState308);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSimpleState"
+
+
+ // $ANTLR start "ruleSimpleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:182:1: ruleSimpleState : ( ( rule__SimpleState__Group__0 ) ) ;
+ public final void ruleSimpleState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:186:2: ( ( ( rule__SimpleState__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:187:1: ( ( rule__SimpleState__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:187:1: ( ( rule__SimpleState__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:188:1: ( rule__SimpleState__Group__0 )
+ {
+ before(grammarAccess.getSimpleStateAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:189:1: ( rule__SimpleState__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:189:2: rule__SimpleState__Group__0
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__0_in_ruleSimpleState334);
+ rule__SimpleState__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSimpleState"
+
+
+ // $ANTLR start "entryRuleCompoundState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:201:1: entryRuleCompoundState : ruleCompoundState EOF ;
+ public final void entryRuleCompoundState() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:202:1: ( ruleCompoundState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:203:1: ruleCompoundState EOF
+ {
+ before(grammarAccess.getCompoundStateRule());
+ pushFollow(FOLLOW_ruleCompoundState_in_entryRuleCompoundState361);
+ ruleCompoundState();
+
+ state._fsp--;
+
+ after(grammarAccess.getCompoundStateRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCompoundState368);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCompoundState"
+
+
+ // $ANTLR start "ruleCompoundState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:210:1: ruleCompoundState : ( ( rule__CompoundState__Group__0 ) ) ;
+ public final void ruleCompoundState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:214:2: ( ( ( rule__CompoundState__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:215:1: ( ( rule__CompoundState__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:215:1: ( ( rule__CompoundState__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:216:1: ( rule__CompoundState__Group__0 )
+ {
+ before(grammarAccess.getCompoundStateAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:217:1: ( rule__CompoundState__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:217:2: rule__CompoundState__Group__0
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__0_in_ruleCompoundState394);
+ rule__CompoundState__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCompoundState"
+
+
+ // $ANTLR start "entryRuleTransition"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:229:1: entryRuleTransition : ruleTransition EOF ;
+ public final void entryRuleTransition() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:230:1: ( ruleTransition EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:231:1: ruleTransition EOF
+ {
+ before(grammarAccess.getTransitionRule());
+ pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition421);
+ ruleTransition();
+
+ state._fsp--;
+
+ after(grammarAccess.getTransitionRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTransition428);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleTransition"
+
+
+ // $ANTLR start "ruleTransition"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:238:1: ruleTransition : ( ( rule__Transition__Group__0 ) ) ;
+ public final void ruleTransition() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:242:2: ( ( ( rule__Transition__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:243:1: ( ( rule__Transition__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:243:1: ( ( rule__Transition__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:244:1: ( rule__Transition__Group__0 )
+ {
+ before(grammarAccess.getTransitionAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:245:1: ( rule__Transition__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:245:2: rule__Transition__Group__0
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__0_in_ruleTransition454);
+ rule__Transition__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleTransition"
+
+
+ // $ANTLR start "rule__Module__NameAlternatives_1_0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:257:1: rule__Module__NameAlternatives_1_0 : ( ( RULE_STRING ) | ( RULE_ID ) );
+ public final void rule__Module__NameAlternatives_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:261:1: ( ( RULE_STRING ) | ( RULE_ID ) )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==RULE_STRING) ) {
+ alt1=1;
+ }
+ else if ( (LA1_0==RULE_ID) ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:262:1: ( RULE_STRING )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:262:1: ( RULE_STRING )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:263:1: RULE_STRING
+ {
+ before(grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0_0());
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Module__NameAlternatives_1_0490);
+ after(grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:268:6: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:268:6: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:269:1: RULE_ID
+ {
+ before(grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Module__NameAlternatives_1_0507);
+ after(grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0_1());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__NameAlternatives_1_0"
+
+
+ // $ANTLR start "rule__State__Alternatives"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:279:1: rule__State__Alternatives : ( ( ruleSimpleState ) | ( ruleCompoundState ) );
+ public final void rule__State__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:283:1: ( ( ruleSimpleState ) | ( ruleCompoundState ) )
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==19||LA2_0==23) ) {
+ alt2=1;
+ }
+ else if ( (LA2_0==20) ) {
+ alt2=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:284:1: ( ruleSimpleState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:284:1: ( ruleSimpleState )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:285:1: ruleSimpleState
+ {
+ before(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0());
+ pushFollow(FOLLOW_ruleSimpleState_in_rule__State__Alternatives539);
+ ruleSimpleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:290:6: ( ruleCompoundState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:290:6: ( ruleCompoundState )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:291:1: ruleCompoundState
+ {
+ before(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1());
+ pushFollow(FOLLOW_ruleCompoundState_in_rule__State__Alternatives556);
+ ruleCompoundState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Alternatives"
+
+
+ // $ANTLR start "rule__Module__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:303:1: rule__Module__Group__0 : rule__Module__Group__0__Impl rule__Module__Group__1 ;
+ public final void rule__Module__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:307:1: ( rule__Module__Group__0__Impl rule__Module__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:308:2: rule__Module__Group__0__Impl rule__Module__Group__1
+ {
+ pushFollow(FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__0586);
+ rule__Module__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Module__Group__1_in_rule__Module__Group__0589);
+ rule__Module__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__0"
+
+
+ // $ANTLR start "rule__Module__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:315:1: rule__Module__Group__0__Impl : ( 'module' ) ;
+ public final void rule__Module__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:319:1: ( ( 'module' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:320:1: ( 'module' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:320:1: ( 'module' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:321:1: 'module'
+ {
+ before(grammarAccess.getModuleAccess().getModuleKeyword_0());
+ match(input,11,FOLLOW_11_in_rule__Module__Group__0__Impl617);
+ after(grammarAccess.getModuleAccess().getModuleKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:334:1: rule__Module__Group__1 : rule__Module__Group__1__Impl rule__Module__Group__2 ;
+ public final void rule__Module__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:338:1: ( rule__Module__Group__1__Impl rule__Module__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:339:2: rule__Module__Group__1__Impl rule__Module__Group__2
+ {
+ pushFollow(FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__1648);
+ rule__Module__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Module__Group__2_in_rule__Module__Group__1651);
+ rule__Module__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__1"
+
+
+ // $ANTLR start "rule__Module__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:346:1: rule__Module__Group__1__Impl : ( ( rule__Module__NameAssignment_1 ) ) ;
+ public final void rule__Module__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:350:1: ( ( ( rule__Module__NameAssignment_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:351:1: ( ( rule__Module__NameAssignment_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:351:1: ( ( rule__Module__NameAssignment_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:352:1: ( rule__Module__NameAssignment_1 )
+ {
+ before(grammarAccess.getModuleAccess().getNameAssignment_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:353:1: ( rule__Module__NameAssignment_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:353:2: rule__Module__NameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__Module__NameAssignment_1_in_rule__Module__Group__1__Impl678);
+ rule__Module__NameAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getModuleAccess().getNameAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:363:1: rule__Module__Group__2 : rule__Module__Group__2__Impl ;
+ public final void rule__Module__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:367:1: ( rule__Module__Group__2__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:368:2: rule__Module__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__2708);
+ rule__Module__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__2"
+
+
+ // $ANTLR start "rule__Module__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:374:1: rule__Module__Group__2__Impl : ( ( rule__Module__MachinesAssignment_2 )* ) ;
+ public final void rule__Module__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:378:1: ( ( ( rule__Module__MachinesAssignment_2 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:379:1: ( ( rule__Module__MachinesAssignment_2 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:379:1: ( ( rule__Module__MachinesAssignment_2 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:380:1: ( rule__Module__MachinesAssignment_2 )*
+ {
+ before(grammarAccess.getModuleAccess().getMachinesAssignment_2());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:381:1: ( rule__Module__MachinesAssignment_2 )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==12||LA3_0==23) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:381:2: rule__Module__MachinesAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Module__MachinesAssignment_2_in_rule__Module__Group__2__Impl735);
+ rule__Module__MachinesAssignment_2();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+ after(grammarAccess.getModuleAccess().getMachinesAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:397:1: rule__Statemachine__Group__0 : rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1 ;
+ public final void rule__Statemachine__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:401:1: ( rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:402:2: rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__0__Impl_in_rule__Statemachine__Group__0772);
+ rule__Statemachine__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__1_in_rule__Statemachine__Group__0775);
+ rule__Statemachine__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:409:1: rule__Statemachine__Group__0__Impl : ( ( rule__Statemachine__InitialAssignment_0 )? ) ;
+ public final void rule__Statemachine__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:413:1: ( ( ( rule__Statemachine__InitialAssignment_0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:414:1: ( ( rule__Statemachine__InitialAssignment_0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:414:1: ( ( rule__Statemachine__InitialAssignment_0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:415:1: ( rule__Statemachine__InitialAssignment_0 )?
+ {
+ before(grammarAccess.getStatemachineAccess().getInitialAssignment_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:416:1: ( rule__Statemachine__InitialAssignment_0 )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==23) ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:416:2: rule__Statemachine__InitialAssignment_0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__InitialAssignment_0_in_rule__Statemachine__Group__0__Impl802);
+ rule__Statemachine__InitialAssignment_0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getInitialAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:426:1: rule__Statemachine__Group__1 : rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2 ;
+ public final void rule__Statemachine__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:430:1: ( rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:431:2: rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__1__Impl_in_rule__Statemachine__Group__1833);
+ rule__Statemachine__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__2_in_rule__Statemachine__Group__1836);
+ rule__Statemachine__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:438:1: rule__Statemachine__Group__1__Impl : ( 'statemachine' ) ;
+ public final void rule__Statemachine__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:442:1: ( ( 'statemachine' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:443:1: ( 'statemachine' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:443:1: ( 'statemachine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:444:1: 'statemachine'
+ {
+ before(grammarAccess.getStatemachineAccess().getStatemachineKeyword_1());
+ match(input,12,FOLLOW_12_in_rule__Statemachine__Group__1__Impl864);
+ after(grammarAccess.getStatemachineAccess().getStatemachineKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:457:1: rule__Statemachine__Group__2 : rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3 ;
+ public final void rule__Statemachine__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:461:1: ( rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:462:2: rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__2__Impl_in_rule__Statemachine__Group__2895);
+ rule__Statemachine__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__3_in_rule__Statemachine__Group__2898);
+ rule__Statemachine__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__2"
+
+
+ // $ANTLR start "rule__Statemachine__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:469:1: rule__Statemachine__Group__2__Impl : ( ( rule__Statemachine__NameAssignment_2 ) ) ;
+ public final void rule__Statemachine__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:473:1: ( ( ( rule__Statemachine__NameAssignment_2 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:474:1: ( ( rule__Statemachine__NameAssignment_2 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:474:1: ( ( rule__Statemachine__NameAssignment_2 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:475:1: ( rule__Statemachine__NameAssignment_2 )
+ {
+ before(grammarAccess.getStatemachineAccess().getNameAssignment_2());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:476:1: ( rule__Statemachine__NameAssignment_2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:476:2: rule__Statemachine__NameAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Statemachine__NameAssignment_2_in_rule__Statemachine__Group__2__Impl925);
+ rule__Statemachine__NameAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getNameAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:486:1: rule__Statemachine__Group__3 : rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4 ;
+ public final void rule__Statemachine__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:490:1: ( rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:491:2: rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__3__Impl_in_rule__Statemachine__Group__3955);
+ rule__Statemachine__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__4_in_rule__Statemachine__Group__3958);
+ rule__Statemachine__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__3"
+
+
+ // $ANTLR start "rule__Statemachine__Group__3__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:498:1: rule__Statemachine__Group__3__Impl : ( ( rule__Statemachine__Group_3__0 )? ) ;
+ public final void rule__Statemachine__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:502:1: ( ( ( rule__Statemachine__Group_3__0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:503:1: ( ( rule__Statemachine__Group_3__0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:503:1: ( ( rule__Statemachine__Group_3__0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:504:1: ( rule__Statemachine__Group_3__0 )?
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup_3());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:505:1: ( rule__Statemachine__Group_3__0 )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==17) ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:505:2: rule__Statemachine__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__0_in_rule__Statemachine__Group__3__Impl985);
+ rule__Statemachine__Group_3__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__4"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:515:1: rule__Statemachine__Group__4 : rule__Statemachine__Group__4__Impl rule__Statemachine__Group__5 ;
+ public final void rule__Statemachine__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:519:1: ( rule__Statemachine__Group__4__Impl rule__Statemachine__Group__5 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:520:2: rule__Statemachine__Group__4__Impl rule__Statemachine__Group__5
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__4__Impl_in_rule__Statemachine__Group__41016);
+ rule__Statemachine__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__5_in_rule__Statemachine__Group__41019);
+ rule__Statemachine__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__4"
+
+
+ // $ANTLR start "rule__Statemachine__Group__4__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:527:1: rule__Statemachine__Group__4__Impl : ( '{' ) ;
+ public final void rule__Statemachine__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:531:1: ( ( '{' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:532:1: ( '{' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:532:1: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:533:1: '{'
+ {
+ before(grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4());
+ match(input,13,FOLLOW_13_in_rule__Statemachine__Group__4__Impl1047);
+ after(grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:546:1: rule__Statemachine__Group__5 : rule__Statemachine__Group__5__Impl rule__Statemachine__Group__6 ;
+ public final void rule__Statemachine__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:550:1: ( rule__Statemachine__Group__5__Impl rule__Statemachine__Group__6 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:551:2: rule__Statemachine__Group__5__Impl rule__Statemachine__Group__6
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__5__Impl_in_rule__Statemachine__Group__51078);
+ rule__Statemachine__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__6_in_rule__Statemachine__Group__51081);
+ rule__Statemachine__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__5"
+
+
+ // $ANTLR start "rule__Statemachine__Group__5__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:558:1: rule__Statemachine__Group__5__Impl : ( 'events' ) ;
+ public final void rule__Statemachine__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:562:1: ( ( 'events' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:563:1: ( 'events' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:563:1: ( 'events' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:564:1: 'events'
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsKeyword_5());
+ match(input,14,FOLLOW_14_in_rule__Statemachine__Group__5__Impl1109);
+ after(grammarAccess.getStatemachineAccess().getEventsKeyword_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__6"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:577:1: rule__Statemachine__Group__6 : rule__Statemachine__Group__6__Impl rule__Statemachine__Group__7 ;
+ public final void rule__Statemachine__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:581:1: ( rule__Statemachine__Group__6__Impl rule__Statemachine__Group__7 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:582:2: rule__Statemachine__Group__6__Impl rule__Statemachine__Group__7
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__6__Impl_in_rule__Statemachine__Group__61140);
+ rule__Statemachine__Group__6__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__7_in_rule__Statemachine__Group__61143);
+ rule__Statemachine__Group__7();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__6"
+
+
+ // $ANTLR start "rule__Statemachine__Group__6__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:589:1: rule__Statemachine__Group__6__Impl : ( ( rule__Statemachine__EventsAssignment_6 )* ) ;
+ public final void rule__Statemachine__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:593:1: ( ( ( rule__Statemachine__EventsAssignment_6 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:594:1: ( ( rule__Statemachine__EventsAssignment_6 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:594:1: ( ( rule__Statemachine__EventsAssignment_6 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:595:1: ( rule__Statemachine__EventsAssignment_6 )*
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsAssignment_6());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:596:1: ( rule__Statemachine__EventsAssignment_6 )*
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==RULE_ID) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:596:2: rule__Statemachine__EventsAssignment_6
+ {
+ pushFollow(FOLLOW_rule__Statemachine__EventsAssignment_6_in_rule__Statemachine__Group__6__Impl1170);
+ rule__Statemachine__EventsAssignment_6();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+ after(grammarAccess.getStatemachineAccess().getEventsAssignment_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__6__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__7"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:606:1: rule__Statemachine__Group__7 : rule__Statemachine__Group__7__Impl rule__Statemachine__Group__8 ;
+ public final void rule__Statemachine__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:610:1: ( rule__Statemachine__Group__7__Impl rule__Statemachine__Group__8 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:611:2: rule__Statemachine__Group__7__Impl rule__Statemachine__Group__8
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__7__Impl_in_rule__Statemachine__Group__71201);
+ rule__Statemachine__Group__7__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__8_in_rule__Statemachine__Group__71204);
+ rule__Statemachine__Group__8();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__7"
+
+
+ // $ANTLR start "rule__Statemachine__Group__7__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:618:1: rule__Statemachine__Group__7__Impl : ( ';' ) ;
+ public final void rule__Statemachine__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:622:1: ( ( ';' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:623:1: ( ';' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:623:1: ( ';' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:624:1: ';'
+ {
+ before(grammarAccess.getStatemachineAccess().getSemicolonKeyword_7());
+ match(input,15,FOLLOW_15_in_rule__Statemachine__Group__7__Impl1232);
+ after(grammarAccess.getStatemachineAccess().getSemicolonKeyword_7());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__7__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__8"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:637:1: rule__Statemachine__Group__8 : rule__Statemachine__Group__8__Impl rule__Statemachine__Group__9 ;
+ public final void rule__Statemachine__Group__8() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:641:1: ( rule__Statemachine__Group__8__Impl rule__Statemachine__Group__9 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:642:2: rule__Statemachine__Group__8__Impl rule__Statemachine__Group__9
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__8__Impl_in_rule__Statemachine__Group__81263);
+ rule__Statemachine__Group__8__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__9_in_rule__Statemachine__Group__81266);
+ rule__Statemachine__Group__9();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__8"
+
+
+ // $ANTLR start "rule__Statemachine__Group__8__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:649:1: rule__Statemachine__Group__8__Impl : ( ( rule__Statemachine__StatesAssignment_8 )* ) ;
+ public final void rule__Statemachine__Group__8__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:653:1: ( ( ( rule__Statemachine__StatesAssignment_8 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:654:1: ( ( rule__Statemachine__StatesAssignment_8 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:654:1: ( ( rule__Statemachine__StatesAssignment_8 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:655:1: ( rule__Statemachine__StatesAssignment_8 )*
+ {
+ before(grammarAccess.getStatemachineAccess().getStatesAssignment_8());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:656:1: ( rule__Statemachine__StatesAssignment_8 )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( ((LA7_0>=19 && LA7_0<=20)||LA7_0==23) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:656:2: rule__Statemachine__StatesAssignment_8
+ {
+ pushFollow(FOLLOW_rule__Statemachine__StatesAssignment_8_in_rule__Statemachine__Group__8__Impl1293);
+ rule__Statemachine__StatesAssignment_8();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ after(grammarAccess.getStatemachineAccess().getStatesAssignment_8());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__8__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__9"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:666:1: rule__Statemachine__Group__9 : rule__Statemachine__Group__9__Impl rule__Statemachine__Group__10 ;
+ public final void rule__Statemachine__Group__9() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:670:1: ( rule__Statemachine__Group__9__Impl rule__Statemachine__Group__10 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:671:2: rule__Statemachine__Group__9__Impl rule__Statemachine__Group__10
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__9__Impl_in_rule__Statemachine__Group__91324);
+ rule__Statemachine__Group__9__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__10_in_rule__Statemachine__Group__91327);
+ rule__Statemachine__Group__10();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__9"
+
+
+ // $ANTLR start "rule__Statemachine__Group__9__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:678:1: rule__Statemachine__Group__9__Impl : ( '}' ) ;
+ public final void rule__Statemachine__Group__9__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:682:1: ( ( '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:683:1: ( '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:683:1: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:684:1: '}'
+ {
+ before(grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9());
+ match(input,16,FOLLOW_16_in_rule__Statemachine__Group__9__Impl1355);
+ after(grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__9__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__10"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:697:1: rule__Statemachine__Group__10 : rule__Statemachine__Group__10__Impl ;
+ public final void rule__Statemachine__Group__10() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:701:1: ( rule__Statemachine__Group__10__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:702:2: rule__Statemachine__Group__10__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__10__Impl_in_rule__Statemachine__Group__101386);
+ rule__Statemachine__Group__10__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__10"
+
+
+ // $ANTLR start "rule__Statemachine__Group__10__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:708:1: rule__Statemachine__Group__10__Impl : ( ( rule__Statemachine__Group_10__0 )? ) ;
+ public final void rule__Statemachine__Group__10__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:712:1: ( ( ( rule__Statemachine__Group_10__0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:713:1: ( ( rule__Statemachine__Group_10__0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:713:1: ( ( rule__Statemachine__Group_10__0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:714:1: ( rule__Statemachine__Group_10__0 )?
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup_10());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:715:1: ( rule__Statemachine__Group_10__0 )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==18) ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:715:2: rule__Statemachine__Group_10__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_10__0_in_rule__Statemachine__Group__10__Impl1413);
+ rule__Statemachine__Group_10__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup_10());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__10__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:747:1: rule__Statemachine__Group_3__0 : rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1 ;
+ public final void rule__Statemachine__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:751:1: ( rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:752:2: rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__0__Impl_in_rule__Statemachine__Group_3__01466);
+ rule__Statemachine__Group_3__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__1_in_rule__Statemachine__Group_3__01469);
+ rule__Statemachine__Group_3__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:759:1: rule__Statemachine__Group_3__0__Impl : ( 'value' ) ;
+ public final void rule__Statemachine__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:763:1: ( ( 'value' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:764:1: ( 'value' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:764:1: ( 'value' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:765:1: 'value'
+ {
+ before(grammarAccess.getStatemachineAccess().getValueKeyword_3_0());
+ match(input,17,FOLLOW_17_in_rule__Statemachine__Group_3__0__Impl1497);
+ after(grammarAccess.getStatemachineAccess().getValueKeyword_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:778:1: rule__Statemachine__Group_3__1 : rule__Statemachine__Group_3__1__Impl ;
+ public final void rule__Statemachine__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:782:1: ( rule__Statemachine__Group_3__1__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:783:2: rule__Statemachine__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__1__Impl_in_rule__Statemachine__Group_3__11528);
+ rule__Statemachine__Group_3__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:789:1: rule__Statemachine__Group_3__1__Impl : ( ( rule__Statemachine__ValueAssignment_3_1 ) ) ;
+ public final void rule__Statemachine__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:793:1: ( ( ( rule__Statemachine__ValueAssignment_3_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:794:1: ( ( rule__Statemachine__ValueAssignment_3_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:794:1: ( ( rule__Statemachine__ValueAssignment_3_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:795:1: ( rule__Statemachine__ValueAssignment_3_1 )
+ {
+ before(grammarAccess.getStatemachineAccess().getValueAssignment_3_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:796:1: ( rule__Statemachine__ValueAssignment_3_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:796:2: rule__Statemachine__ValueAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__ValueAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl1555);
+ rule__Statemachine__ValueAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getValueAssignment_3_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_10__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:810:1: rule__Statemachine__Group_10__0 : rule__Statemachine__Group_10__0__Impl rule__Statemachine__Group_10__1 ;
+ public final void rule__Statemachine__Group_10__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:814:1: ( rule__Statemachine__Group_10__0__Impl rule__Statemachine__Group_10__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:815:2: rule__Statemachine__Group_10__0__Impl rule__Statemachine__Group_10__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_10__0__Impl_in_rule__Statemachine__Group_10__01589);
+ rule__Statemachine__Group_10__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_10__1_in_rule__Statemachine__Group_10__01592);
+ rule__Statemachine__Group_10__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_10__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group_10__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:822:1: rule__Statemachine__Group_10__0__Impl : ( 'debug' ) ;
+ public final void rule__Statemachine__Group_10__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:826:1: ( ( 'debug' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:827:1: ( 'debug' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:827:1: ( 'debug' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:828:1: 'debug'
+ {
+ before(grammarAccess.getStatemachineAccess().getDebugKeyword_10_0());
+ match(input,18,FOLLOW_18_in_rule__Statemachine__Group_10__0__Impl1620);
+ after(grammarAccess.getStatemachineAccess().getDebugKeyword_10_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_10__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_10__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:841:1: rule__Statemachine__Group_10__1 : rule__Statemachine__Group_10__1__Impl ;
+ public final void rule__Statemachine__Group_10__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:845:1: ( rule__Statemachine__Group_10__1__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:846:2: rule__Statemachine__Group_10__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_10__1__Impl_in_rule__Statemachine__Group_10__11651);
+ rule__Statemachine__Group_10__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_10__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group_10__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:852:1: rule__Statemachine__Group_10__1__Impl : ( ( rule__Statemachine__DbgNameAssignment_10_1 ) ) ;
+ public final void rule__Statemachine__Group_10__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:856:1: ( ( ( rule__Statemachine__DbgNameAssignment_10_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:857:1: ( ( rule__Statemachine__DbgNameAssignment_10_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:857:1: ( ( rule__Statemachine__DbgNameAssignment_10_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:858:1: ( rule__Statemachine__DbgNameAssignment_10_1 )
+ {
+ before(grammarAccess.getStatemachineAccess().getDbgNameAssignment_10_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:859:1: ( rule__Statemachine__DbgNameAssignment_10_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:859:2: rule__Statemachine__DbgNameAssignment_10_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__DbgNameAssignment_10_1_in_rule__Statemachine__Group_10__1__Impl1678);
+ rule__Statemachine__DbgNameAssignment_10_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getDbgNameAssignment_10_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_10__1__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:873:1: rule__SimpleState__Group__0 : rule__SimpleState__Group__0__Impl rule__SimpleState__Group__1 ;
+ public final void rule__SimpleState__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:877:1: ( rule__SimpleState__Group__0__Impl rule__SimpleState__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:878:2: rule__SimpleState__Group__0__Impl rule__SimpleState__Group__1
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__0__Impl_in_rule__SimpleState__Group__01712);
+ rule__SimpleState__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__1_in_rule__SimpleState__Group__01715);
+ rule__SimpleState__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__0"
+
+
+ // $ANTLR start "rule__SimpleState__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:885:1: rule__SimpleState__Group__0__Impl : ( ( rule__SimpleState__InitialAssignment_0 )? ) ;
+ public final void rule__SimpleState__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:889:1: ( ( ( rule__SimpleState__InitialAssignment_0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:890:1: ( ( rule__SimpleState__InitialAssignment_0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:890:1: ( ( rule__SimpleState__InitialAssignment_0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:891:1: ( rule__SimpleState__InitialAssignment_0 )?
+ {
+ before(grammarAccess.getSimpleStateAccess().getInitialAssignment_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:892:1: ( rule__SimpleState__InitialAssignment_0 )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==23) ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:892:2: rule__SimpleState__InitialAssignment_0
+ {
+ pushFollow(FOLLOW_rule__SimpleState__InitialAssignment_0_in_rule__SimpleState__Group__0__Impl1742);
+ rule__SimpleState__InitialAssignment_0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getInitialAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:902:1: rule__SimpleState__Group__1 : rule__SimpleState__Group__1__Impl rule__SimpleState__Group__2 ;
+ public final void rule__SimpleState__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:906:1: ( rule__SimpleState__Group__1__Impl rule__SimpleState__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:907:2: rule__SimpleState__Group__1__Impl rule__SimpleState__Group__2
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__1__Impl_in_rule__SimpleState__Group__11773);
+ rule__SimpleState__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__2_in_rule__SimpleState__Group__11776);
+ rule__SimpleState__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__1"
+
+
+ // $ANTLR start "rule__SimpleState__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:914:1: rule__SimpleState__Group__1__Impl : ( 'state' ) ;
+ public final void rule__SimpleState__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:918:1: ( ( 'state' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:919:1: ( 'state' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:919:1: ( 'state' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:920:1: 'state'
+ {
+ before(grammarAccess.getSimpleStateAccess().getStateKeyword_1());
+ match(input,19,FOLLOW_19_in_rule__SimpleState__Group__1__Impl1804);
+ after(grammarAccess.getSimpleStateAccess().getStateKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:933:1: rule__SimpleState__Group__2 : rule__SimpleState__Group__2__Impl rule__SimpleState__Group__3 ;
+ public final void rule__SimpleState__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:937:1: ( rule__SimpleState__Group__2__Impl rule__SimpleState__Group__3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:938:2: rule__SimpleState__Group__2__Impl rule__SimpleState__Group__3
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__2__Impl_in_rule__SimpleState__Group__21835);
+ rule__SimpleState__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__3_in_rule__SimpleState__Group__21838);
+ rule__SimpleState__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__2"
+
+
+ // $ANTLR start "rule__SimpleState__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:945:1: rule__SimpleState__Group__2__Impl : ( ( rule__SimpleState__NameAssignment_2 ) ) ;
+ public final void rule__SimpleState__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:949:1: ( ( ( rule__SimpleState__NameAssignment_2 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:950:1: ( ( rule__SimpleState__NameAssignment_2 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:950:1: ( ( rule__SimpleState__NameAssignment_2 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:951:1: ( rule__SimpleState__NameAssignment_2 )
+ {
+ before(grammarAccess.getSimpleStateAccess().getNameAssignment_2());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:952:1: ( rule__SimpleState__NameAssignment_2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:952:2: rule__SimpleState__NameAssignment_2
+ {
+ pushFollow(FOLLOW_rule__SimpleState__NameAssignment_2_in_rule__SimpleState__Group__2__Impl1865);
+ rule__SimpleState__NameAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getNameAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__2__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:962:1: rule__SimpleState__Group__3 : rule__SimpleState__Group__3__Impl rule__SimpleState__Group__4 ;
+ public final void rule__SimpleState__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:966:1: ( rule__SimpleState__Group__3__Impl rule__SimpleState__Group__4 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:967:2: rule__SimpleState__Group__3__Impl rule__SimpleState__Group__4
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__3__Impl_in_rule__SimpleState__Group__31895);
+ rule__SimpleState__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__4_in_rule__SimpleState__Group__31898);
+ rule__SimpleState__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__3"
+
+
+ // $ANTLR start "rule__SimpleState__Group__3__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:974:1: rule__SimpleState__Group__3__Impl : ( ( rule__SimpleState__Group_3__0 )? ) ;
+ public final void rule__SimpleState__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:978:1: ( ( ( rule__SimpleState__Group_3__0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:979:1: ( ( rule__SimpleState__Group_3__0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:979:1: ( ( rule__SimpleState__Group_3__0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:980:1: ( rule__SimpleState__Group_3__0 )?
+ {
+ before(grammarAccess.getSimpleStateAccess().getGroup_3());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:981:1: ( rule__SimpleState__Group_3__0 )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==17) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:981:2: rule__SimpleState__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_3__0_in_rule__SimpleState__Group__3__Impl1925);
+ rule__SimpleState__Group_3__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getGroup_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__3__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__4"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:991:1: rule__SimpleState__Group__4 : rule__SimpleState__Group__4__Impl rule__SimpleState__Group__5 ;
+ public final void rule__SimpleState__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:995:1: ( rule__SimpleState__Group__4__Impl rule__SimpleState__Group__5 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:996:2: rule__SimpleState__Group__4__Impl rule__SimpleState__Group__5
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__4__Impl_in_rule__SimpleState__Group__41956);
+ rule__SimpleState__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__5_in_rule__SimpleState__Group__41959);
+ rule__SimpleState__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__4"
+
+
+ // $ANTLR start "rule__SimpleState__Group__4__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1003:1: rule__SimpleState__Group__4__Impl : ( '{' ) ;
+ public final void rule__SimpleState__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1007:1: ( ( '{' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1008:1: ( '{' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1008:1: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1009:1: '{'
+ {
+ before(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4());
+ match(input,13,FOLLOW_13_in_rule__SimpleState__Group__4__Impl1987);
+ after(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__4__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1022:1: rule__SimpleState__Group__5 : rule__SimpleState__Group__5__Impl rule__SimpleState__Group__6 ;
+ public final void rule__SimpleState__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1026:1: ( rule__SimpleState__Group__5__Impl rule__SimpleState__Group__6 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1027:2: rule__SimpleState__Group__5__Impl rule__SimpleState__Group__6
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__5__Impl_in_rule__SimpleState__Group__52018);
+ rule__SimpleState__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__6_in_rule__SimpleState__Group__52021);
+ rule__SimpleState__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__5"
+
+
+ // $ANTLR start "rule__SimpleState__Group__5__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1034:1: rule__SimpleState__Group__5__Impl : ( ( rule__SimpleState__TransitionsAssignment_5 )* ) ;
+ public final void rule__SimpleState__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1038:1: ( ( ( rule__SimpleState__TransitionsAssignment_5 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1039:1: ( ( rule__SimpleState__TransitionsAssignment_5 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1039:1: ( ( rule__SimpleState__TransitionsAssignment_5 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1040:1: ( rule__SimpleState__TransitionsAssignment_5 )*
+ {
+ before(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1041:1: ( rule__SimpleState__TransitionsAssignment_5 )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==RULE_ID) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1041:2: rule__SimpleState__TransitionsAssignment_5
+ {
+ pushFollow(FOLLOW_rule__SimpleState__TransitionsAssignment_5_in_rule__SimpleState__Group__5__Impl2048);
+ rule__SimpleState__TransitionsAssignment_5();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ after(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__5__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__6"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1051:1: rule__SimpleState__Group__6 : rule__SimpleState__Group__6__Impl rule__SimpleState__Group__7 ;
+ public final void rule__SimpleState__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1055:1: ( rule__SimpleState__Group__6__Impl rule__SimpleState__Group__7 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1056:2: rule__SimpleState__Group__6__Impl rule__SimpleState__Group__7
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__6__Impl_in_rule__SimpleState__Group__62079);
+ rule__SimpleState__Group__6__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__7_in_rule__SimpleState__Group__62082);
+ rule__SimpleState__Group__7();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__6"
+
+
+ // $ANTLR start "rule__SimpleState__Group__6__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1063:1: rule__SimpleState__Group__6__Impl : ( '}' ) ;
+ public final void rule__SimpleState__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1067:1: ( ( '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1068:1: ( '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1068:1: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1069:1: '}'
+ {
+ before(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6());
+ match(input,16,FOLLOW_16_in_rule__SimpleState__Group__6__Impl2110);
+ after(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__6__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__7"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1082:1: rule__SimpleState__Group__7 : rule__SimpleState__Group__7__Impl ;
+ public final void rule__SimpleState__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1086:1: ( rule__SimpleState__Group__7__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1087:2: rule__SimpleState__Group__7__Impl
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__7__Impl_in_rule__SimpleState__Group__72141);
+ rule__SimpleState__Group__7__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__7"
+
+
+ // $ANTLR start "rule__SimpleState__Group__7__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1093:1: rule__SimpleState__Group__7__Impl : ( ( rule__SimpleState__Group_7__0 )? ) ;
+ public final void rule__SimpleState__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1097:1: ( ( ( rule__SimpleState__Group_7__0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1098:1: ( ( rule__SimpleState__Group_7__0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1098:1: ( ( rule__SimpleState__Group_7__0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1099:1: ( rule__SimpleState__Group_7__0 )?
+ {
+ before(grammarAccess.getSimpleStateAccess().getGroup_7());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1100:1: ( rule__SimpleState__Group_7__0 )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==18) ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1100:2: rule__SimpleState__Group_7__0
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_7__0_in_rule__SimpleState__Group__7__Impl2168);
+ rule__SimpleState__Group_7__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getGroup_7());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__7__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group_3__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1126:1: rule__SimpleState__Group_3__0 : rule__SimpleState__Group_3__0__Impl rule__SimpleState__Group_3__1 ;
+ public final void rule__SimpleState__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1130:1: ( rule__SimpleState__Group_3__0__Impl rule__SimpleState__Group_3__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1131:2: rule__SimpleState__Group_3__0__Impl rule__SimpleState__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_3__0__Impl_in_rule__SimpleState__Group_3__02215);
+ rule__SimpleState__Group_3__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group_3__1_in_rule__SimpleState__Group_3__02218);
+ rule__SimpleState__Group_3__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_3__0"
+
+
+ // $ANTLR start "rule__SimpleState__Group_3__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1138:1: rule__SimpleState__Group_3__0__Impl : ( 'value' ) ;
+ public final void rule__SimpleState__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1142:1: ( ( 'value' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1143:1: ( 'value' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1143:1: ( 'value' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1144:1: 'value'
+ {
+ before(grammarAccess.getSimpleStateAccess().getValueKeyword_3_0());
+ match(input,17,FOLLOW_17_in_rule__SimpleState__Group_3__0__Impl2246);
+ after(grammarAccess.getSimpleStateAccess().getValueKeyword_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group_3__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1157:1: rule__SimpleState__Group_3__1 : rule__SimpleState__Group_3__1__Impl ;
+ public final void rule__SimpleState__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1161:1: ( rule__SimpleState__Group_3__1__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1162:2: rule__SimpleState__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_3__1__Impl_in_rule__SimpleState__Group_3__12277);
+ rule__SimpleState__Group_3__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_3__1"
+
+
+ // $ANTLR start "rule__SimpleState__Group_3__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1168:1: rule__SimpleState__Group_3__1__Impl : ( ( rule__SimpleState__ValueAssignment_3_1 ) ) ;
+ public final void rule__SimpleState__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1172:1: ( ( ( rule__SimpleState__ValueAssignment_3_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1173:1: ( ( rule__SimpleState__ValueAssignment_3_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1173:1: ( ( rule__SimpleState__ValueAssignment_3_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1174:1: ( rule__SimpleState__ValueAssignment_3_1 )
+ {
+ before(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1175:1: ( rule__SimpleState__ValueAssignment_3_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1175:2: rule__SimpleState__ValueAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__SimpleState__ValueAssignment_3_1_in_rule__SimpleState__Group_3__1__Impl2304);
+ rule__SimpleState__ValueAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group_7__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1189:1: rule__SimpleState__Group_7__0 : rule__SimpleState__Group_7__0__Impl rule__SimpleState__Group_7__1 ;
+ public final void rule__SimpleState__Group_7__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1193:1: ( rule__SimpleState__Group_7__0__Impl rule__SimpleState__Group_7__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1194:2: rule__SimpleState__Group_7__0__Impl rule__SimpleState__Group_7__1
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_7__0__Impl_in_rule__SimpleState__Group_7__02338);
+ rule__SimpleState__Group_7__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group_7__1_in_rule__SimpleState__Group_7__02341);
+ rule__SimpleState__Group_7__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_7__0"
+
+
+ // $ANTLR start "rule__SimpleState__Group_7__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1201:1: rule__SimpleState__Group_7__0__Impl : ( 'debug' ) ;
+ public final void rule__SimpleState__Group_7__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1205:1: ( ( 'debug' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1206:1: ( 'debug' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1206:1: ( 'debug' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1207:1: 'debug'
+ {
+ before(grammarAccess.getSimpleStateAccess().getDebugKeyword_7_0());
+ match(input,18,FOLLOW_18_in_rule__SimpleState__Group_7__0__Impl2369);
+ after(grammarAccess.getSimpleStateAccess().getDebugKeyword_7_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_7__0__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group_7__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1220:1: rule__SimpleState__Group_7__1 : rule__SimpleState__Group_7__1__Impl ;
+ public final void rule__SimpleState__Group_7__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1224:1: ( rule__SimpleState__Group_7__1__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1225:2: rule__SimpleState__Group_7__1__Impl
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_7__1__Impl_in_rule__SimpleState__Group_7__12400);
+ rule__SimpleState__Group_7__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_7__1"
+
+
+ // $ANTLR start "rule__SimpleState__Group_7__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1231:1: rule__SimpleState__Group_7__1__Impl : ( ( rule__SimpleState__DbgNameAssignment_7_1 ) ) ;
+ public final void rule__SimpleState__Group_7__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1235:1: ( ( ( rule__SimpleState__DbgNameAssignment_7_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1236:1: ( ( rule__SimpleState__DbgNameAssignment_7_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1236:1: ( ( rule__SimpleState__DbgNameAssignment_7_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1237:1: ( rule__SimpleState__DbgNameAssignment_7_1 )
+ {
+ before(grammarAccess.getSimpleStateAccess().getDbgNameAssignment_7_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1238:1: ( rule__SimpleState__DbgNameAssignment_7_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1238:2: rule__SimpleState__DbgNameAssignment_7_1
+ {
+ pushFollow(FOLLOW_rule__SimpleState__DbgNameAssignment_7_1_in_rule__SimpleState__Group_7__1__Impl2427);
+ rule__SimpleState__DbgNameAssignment_7_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getDbgNameAssignment_7_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_7__1__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1252:1: rule__CompoundState__Group__0 : rule__CompoundState__Group__0__Impl rule__CompoundState__Group__1 ;
+ public final void rule__CompoundState__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1256:1: ( rule__CompoundState__Group__0__Impl rule__CompoundState__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1257:2: rule__CompoundState__Group__0__Impl rule__CompoundState__Group__1
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__0__Impl_in_rule__CompoundState__Group__02461);
+ rule__CompoundState__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__1_in_rule__CompoundState__Group__02464);
+ rule__CompoundState__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__0"
+
+
+ // $ANTLR start "rule__CompoundState__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1264:1: rule__CompoundState__Group__0__Impl : ( 'compound' ) ;
+ public final void rule__CompoundState__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1268:1: ( ( 'compound' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1269:1: ( 'compound' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1269:1: ( 'compound' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1270:1: 'compound'
+ {
+ before(grammarAccess.getCompoundStateAccess().getCompoundKeyword_0());
+ match(input,20,FOLLOW_20_in_rule__CompoundState__Group__0__Impl2492);
+ after(grammarAccess.getCompoundStateAccess().getCompoundKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__0__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1283:1: rule__CompoundState__Group__1 : rule__CompoundState__Group__1__Impl rule__CompoundState__Group__2 ;
+ public final void rule__CompoundState__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1287:1: ( rule__CompoundState__Group__1__Impl rule__CompoundState__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1288:2: rule__CompoundState__Group__1__Impl rule__CompoundState__Group__2
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__1__Impl_in_rule__CompoundState__Group__12523);
+ rule__CompoundState__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__2_in_rule__CompoundState__Group__12526);
+ rule__CompoundState__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__1"
+
+
+ // $ANTLR start "rule__CompoundState__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1295:1: rule__CompoundState__Group__1__Impl : ( ( rule__CompoundState__InitialAssignment_1 )? ) ;
+ public final void rule__CompoundState__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1299:1: ( ( ( rule__CompoundState__InitialAssignment_1 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1300:1: ( ( rule__CompoundState__InitialAssignment_1 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1300:1: ( ( rule__CompoundState__InitialAssignment_1 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1301:1: ( rule__CompoundState__InitialAssignment_1 )?
+ {
+ before(grammarAccess.getCompoundStateAccess().getInitialAssignment_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1302:1: ( rule__CompoundState__InitialAssignment_1 )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==23) ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1302:2: rule__CompoundState__InitialAssignment_1
+ {
+ pushFollow(FOLLOW_rule__CompoundState__InitialAssignment_1_in_rule__CompoundState__Group__1__Impl2553);
+ rule__CompoundState__InitialAssignment_1();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getInitialAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1312:1: rule__CompoundState__Group__2 : rule__CompoundState__Group__2__Impl rule__CompoundState__Group__3 ;
+ public final void rule__CompoundState__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1316:1: ( rule__CompoundState__Group__2__Impl rule__CompoundState__Group__3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1317:2: rule__CompoundState__Group__2__Impl rule__CompoundState__Group__3
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__2__Impl_in_rule__CompoundState__Group__22584);
+ rule__CompoundState__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__3_in_rule__CompoundState__Group__22587);
+ rule__CompoundState__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__2"
+
+
+ // $ANTLR start "rule__CompoundState__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1324:1: rule__CompoundState__Group__2__Impl : ( 'state' ) ;
+ public final void rule__CompoundState__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1328:1: ( ( 'state' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1329:1: ( 'state' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1329:1: ( 'state' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1330:1: 'state'
+ {
+ before(grammarAccess.getCompoundStateAccess().getStateKeyword_2());
+ match(input,19,FOLLOW_19_in_rule__CompoundState__Group__2__Impl2615);
+ after(grammarAccess.getCompoundStateAccess().getStateKeyword_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__2__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1343:1: rule__CompoundState__Group__3 : rule__CompoundState__Group__3__Impl rule__CompoundState__Group__4 ;
+ public final void rule__CompoundState__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1347:1: ( rule__CompoundState__Group__3__Impl rule__CompoundState__Group__4 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1348:2: rule__CompoundState__Group__3__Impl rule__CompoundState__Group__4
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__3__Impl_in_rule__CompoundState__Group__32646);
+ rule__CompoundState__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__4_in_rule__CompoundState__Group__32649);
+ rule__CompoundState__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__3"
+
+
+ // $ANTLR start "rule__CompoundState__Group__3__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1355:1: rule__CompoundState__Group__3__Impl : ( ( rule__CompoundState__NameAssignment_3 ) ) ;
+ public final void rule__CompoundState__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1359:1: ( ( ( rule__CompoundState__NameAssignment_3 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1360:1: ( ( rule__CompoundState__NameAssignment_3 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1360:1: ( ( rule__CompoundState__NameAssignment_3 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1361:1: ( rule__CompoundState__NameAssignment_3 )
+ {
+ before(grammarAccess.getCompoundStateAccess().getNameAssignment_3());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1362:1: ( rule__CompoundState__NameAssignment_3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1362:2: rule__CompoundState__NameAssignment_3
+ {
+ pushFollow(FOLLOW_rule__CompoundState__NameAssignment_3_in_rule__CompoundState__Group__3__Impl2676);
+ rule__CompoundState__NameAssignment_3();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getNameAssignment_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__3__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__4"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1372:1: rule__CompoundState__Group__4 : rule__CompoundState__Group__4__Impl rule__CompoundState__Group__5 ;
+ public final void rule__CompoundState__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1376:1: ( rule__CompoundState__Group__4__Impl rule__CompoundState__Group__5 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1377:2: rule__CompoundState__Group__4__Impl rule__CompoundState__Group__5
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__4__Impl_in_rule__CompoundState__Group__42706);
+ rule__CompoundState__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__5_in_rule__CompoundState__Group__42709);
+ rule__CompoundState__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__4"
+
+
+ // $ANTLR start "rule__CompoundState__Group__4__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1384:1: rule__CompoundState__Group__4__Impl : ( 'machine' ) ;
+ public final void rule__CompoundState__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1388:1: ( ( 'machine' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1389:1: ( 'machine' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1389:1: ( 'machine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1390:1: 'machine'
+ {
+ before(grammarAccess.getCompoundStateAccess().getMachineKeyword_4());
+ match(input,21,FOLLOW_21_in_rule__CompoundState__Group__4__Impl2737);
+ after(grammarAccess.getCompoundStateAccess().getMachineKeyword_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__4__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1403:1: rule__CompoundState__Group__5 : rule__CompoundState__Group__5__Impl rule__CompoundState__Group__6 ;
+ public final void rule__CompoundState__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1407:1: ( rule__CompoundState__Group__5__Impl rule__CompoundState__Group__6 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1408:2: rule__CompoundState__Group__5__Impl rule__CompoundState__Group__6
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__5__Impl_in_rule__CompoundState__Group__52768);
+ rule__CompoundState__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__6_in_rule__CompoundState__Group__52771);
+ rule__CompoundState__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__5"
+
+
+ // $ANTLR start "rule__CompoundState__Group__5__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1415:1: rule__CompoundState__Group__5__Impl : ( ( rule__CompoundState__MachineAssignment_5 ) ) ;
+ public final void rule__CompoundState__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1419:1: ( ( ( rule__CompoundState__MachineAssignment_5 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1420:1: ( ( rule__CompoundState__MachineAssignment_5 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1420:1: ( ( rule__CompoundState__MachineAssignment_5 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1421:1: ( rule__CompoundState__MachineAssignment_5 )
+ {
+ before(grammarAccess.getCompoundStateAccess().getMachineAssignment_5());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1422:1: ( rule__CompoundState__MachineAssignment_5 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1422:2: rule__CompoundState__MachineAssignment_5
+ {
+ pushFollow(FOLLOW_rule__CompoundState__MachineAssignment_5_in_rule__CompoundState__Group__5__Impl2798);
+ rule__CompoundState__MachineAssignment_5();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getMachineAssignment_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__5__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__6"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1432:1: rule__CompoundState__Group__6 : rule__CompoundState__Group__6__Impl rule__CompoundState__Group__7 ;
+ public final void rule__CompoundState__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1436:1: ( rule__CompoundState__Group__6__Impl rule__CompoundState__Group__7 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1437:2: rule__CompoundState__Group__6__Impl rule__CompoundState__Group__7
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__6__Impl_in_rule__CompoundState__Group__62828);
+ rule__CompoundState__Group__6__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__7_in_rule__CompoundState__Group__62831);
+ rule__CompoundState__Group__7();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__6"
+
+
+ // $ANTLR start "rule__CompoundState__Group__6__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1444:1: rule__CompoundState__Group__6__Impl : ( '{' ) ;
+ public final void rule__CompoundState__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1448:1: ( ( '{' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1449:1: ( '{' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1449:1: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1450:1: '{'
+ {
+ before(grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6());
+ match(input,13,FOLLOW_13_in_rule__CompoundState__Group__6__Impl2859);
+ after(grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__6__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__7"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1463:1: rule__CompoundState__Group__7 : rule__CompoundState__Group__7__Impl rule__CompoundState__Group__8 ;
+ public final void rule__CompoundState__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1467:1: ( rule__CompoundState__Group__7__Impl rule__CompoundState__Group__8 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1468:2: rule__CompoundState__Group__7__Impl rule__CompoundState__Group__8
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__7__Impl_in_rule__CompoundState__Group__72890);
+ rule__CompoundState__Group__7__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__8_in_rule__CompoundState__Group__72893);
+ rule__CompoundState__Group__8();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__7"
+
+
+ // $ANTLR start "rule__CompoundState__Group__7__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1475:1: rule__CompoundState__Group__7__Impl : ( ( rule__CompoundState__TransitionsAssignment_7 )* ) ;
+ public final void rule__CompoundState__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1479:1: ( ( ( rule__CompoundState__TransitionsAssignment_7 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1480:1: ( ( rule__CompoundState__TransitionsAssignment_7 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1480:1: ( ( rule__CompoundState__TransitionsAssignment_7 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1481:1: ( rule__CompoundState__TransitionsAssignment_7 )*
+ {
+ before(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1482:1: ( rule__CompoundState__TransitionsAssignment_7 )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==RULE_ID) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1482:2: rule__CompoundState__TransitionsAssignment_7
+ {
+ pushFollow(FOLLOW_rule__CompoundState__TransitionsAssignment_7_in_rule__CompoundState__Group__7__Impl2920);
+ rule__CompoundState__TransitionsAssignment_7();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+ after(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__7__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__8"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1492:1: rule__CompoundState__Group__8 : rule__CompoundState__Group__8__Impl rule__CompoundState__Group__9 ;
+ public final void rule__CompoundState__Group__8() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1496:1: ( rule__CompoundState__Group__8__Impl rule__CompoundState__Group__9 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1497:2: rule__CompoundState__Group__8__Impl rule__CompoundState__Group__9
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__8__Impl_in_rule__CompoundState__Group__82951);
+ rule__CompoundState__Group__8__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__9_in_rule__CompoundState__Group__82954);
+ rule__CompoundState__Group__9();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__8"
+
+
+ // $ANTLR start "rule__CompoundState__Group__8__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1504:1: rule__CompoundState__Group__8__Impl : ( '}' ) ;
+ public final void rule__CompoundState__Group__8__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1508:1: ( ( '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1509:1: ( '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1509:1: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1510:1: '}'
+ {
+ before(grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8());
+ match(input,16,FOLLOW_16_in_rule__CompoundState__Group__8__Impl2982);
+ after(grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__8__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__9"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1523:1: rule__CompoundState__Group__9 : rule__CompoundState__Group__9__Impl ;
+ public final void rule__CompoundState__Group__9() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1527:1: ( rule__CompoundState__Group__9__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1528:2: rule__CompoundState__Group__9__Impl
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__9__Impl_in_rule__CompoundState__Group__93013);
+ rule__CompoundState__Group__9__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__9"
+
+
+ // $ANTLR start "rule__CompoundState__Group__9__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1534:1: rule__CompoundState__Group__9__Impl : ( ( rule__CompoundState__Group_9__0 )? ) ;
+ public final void rule__CompoundState__Group__9__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1538:1: ( ( ( rule__CompoundState__Group_9__0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1539:1: ( ( rule__CompoundState__Group_9__0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1539:1: ( ( rule__CompoundState__Group_9__0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1540:1: ( rule__CompoundState__Group_9__0 )?
+ {
+ before(grammarAccess.getCompoundStateAccess().getGroup_9());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1541:1: ( rule__CompoundState__Group_9__0 )?
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==18) ) {
+ alt15=1;
+ }
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1541:2: rule__CompoundState__Group_9__0
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group_9__0_in_rule__CompoundState__Group__9__Impl3040);
+ rule__CompoundState__Group_9__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getGroup_9());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__9__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group_9__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1571:1: rule__CompoundState__Group_9__0 : rule__CompoundState__Group_9__0__Impl rule__CompoundState__Group_9__1 ;
+ public final void rule__CompoundState__Group_9__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1575:1: ( rule__CompoundState__Group_9__0__Impl rule__CompoundState__Group_9__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1576:2: rule__CompoundState__Group_9__0__Impl rule__CompoundState__Group_9__1
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group_9__0__Impl_in_rule__CompoundState__Group_9__03091);
+ rule__CompoundState__Group_9__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group_9__1_in_rule__CompoundState__Group_9__03094);
+ rule__CompoundState__Group_9__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group_9__0"
+
+
+ // $ANTLR start "rule__CompoundState__Group_9__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1583:1: rule__CompoundState__Group_9__0__Impl : ( 'debug' ) ;
+ public final void rule__CompoundState__Group_9__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1587:1: ( ( 'debug' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1588:1: ( 'debug' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1588:1: ( 'debug' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1589:1: 'debug'
+ {
+ before(grammarAccess.getCompoundStateAccess().getDebugKeyword_9_0());
+ match(input,18,FOLLOW_18_in_rule__CompoundState__Group_9__0__Impl3122);
+ after(grammarAccess.getCompoundStateAccess().getDebugKeyword_9_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group_9__0__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group_9__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1602:1: rule__CompoundState__Group_9__1 : rule__CompoundState__Group_9__1__Impl ;
+ public final void rule__CompoundState__Group_9__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1606:1: ( rule__CompoundState__Group_9__1__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1607:2: rule__CompoundState__Group_9__1__Impl
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group_9__1__Impl_in_rule__CompoundState__Group_9__13153);
+ rule__CompoundState__Group_9__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group_9__1"
+
+
+ // $ANTLR start "rule__CompoundState__Group_9__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1613:1: rule__CompoundState__Group_9__1__Impl : ( ( rule__CompoundState__DbgNameAssignment_9_1 ) ) ;
+ public final void rule__CompoundState__Group_9__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1617:1: ( ( ( rule__CompoundState__DbgNameAssignment_9_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1618:1: ( ( rule__CompoundState__DbgNameAssignment_9_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1618:1: ( ( rule__CompoundState__DbgNameAssignment_9_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1619:1: ( rule__CompoundState__DbgNameAssignment_9_1 )
+ {
+ before(grammarAccess.getCompoundStateAccess().getDbgNameAssignment_9_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1620:1: ( rule__CompoundState__DbgNameAssignment_9_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1620:2: rule__CompoundState__DbgNameAssignment_9_1
+ {
+ pushFollow(FOLLOW_rule__CompoundState__DbgNameAssignment_9_1_in_rule__CompoundState__Group_9__1__Impl3180);
+ rule__CompoundState__DbgNameAssignment_9_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getDbgNameAssignment_9_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group_9__1__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1634:1: rule__Transition__Group__0 : rule__Transition__Group__0__Impl rule__Transition__Group__1 ;
+ public final void rule__Transition__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1638:1: ( rule__Transition__Group__0__Impl rule__Transition__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1639:2: rule__Transition__Group__0__Impl rule__Transition__Group__1
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__0__Impl_in_rule__Transition__Group__03214);
+ rule__Transition__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Transition__Group__1_in_rule__Transition__Group__03217);
+ rule__Transition__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__0"
+
+
+ // $ANTLR start "rule__Transition__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1646:1: rule__Transition__Group__0__Impl : ( ( rule__Transition__EventAssignment_0 ) ) ;
+ public final void rule__Transition__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1650:1: ( ( ( rule__Transition__EventAssignment_0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1651:1: ( ( rule__Transition__EventAssignment_0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1651:1: ( ( rule__Transition__EventAssignment_0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1652:1: ( rule__Transition__EventAssignment_0 )
+ {
+ before(grammarAccess.getTransitionAccess().getEventAssignment_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1653:1: ( rule__Transition__EventAssignment_0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1653:2: rule__Transition__EventAssignment_0
+ {
+ pushFollow(FOLLOW_rule__Transition__EventAssignment_0_in_rule__Transition__Group__0__Impl3244);
+ rule__Transition__EventAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getEventAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1663:1: rule__Transition__Group__1 : rule__Transition__Group__1__Impl rule__Transition__Group__2 ;
+ public final void rule__Transition__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1667:1: ( rule__Transition__Group__1__Impl rule__Transition__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1668:2: rule__Transition__Group__1__Impl rule__Transition__Group__2
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__1__Impl_in_rule__Transition__Group__13274);
+ rule__Transition__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Transition__Group__2_in_rule__Transition__Group__13277);
+ rule__Transition__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__1"
+
+
+ // $ANTLR start "rule__Transition__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1675:1: rule__Transition__Group__1__Impl : ( '=>' ) ;
+ public final void rule__Transition__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1679:1: ( ( '=>' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1680:1: ( '=>' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1680:1: ( '=>' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1681:1: '=>'
+ {
+ before(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+ match(input,22,FOLLOW_22_in_rule__Transition__Group__1__Impl3305);
+ after(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1694:1: rule__Transition__Group__2 : rule__Transition__Group__2__Impl rule__Transition__Group__3 ;
+ public final void rule__Transition__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1698:1: ( rule__Transition__Group__2__Impl rule__Transition__Group__3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1699:2: rule__Transition__Group__2__Impl rule__Transition__Group__3
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__2__Impl_in_rule__Transition__Group__23336);
+ rule__Transition__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Transition__Group__3_in_rule__Transition__Group__23339);
+ rule__Transition__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__2"
+
+
+ // $ANTLR start "rule__Transition__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1706:1: rule__Transition__Group__2__Impl : ( ( rule__Transition__StateAssignment_2 ) ) ;
+ public final void rule__Transition__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1710:1: ( ( ( rule__Transition__StateAssignment_2 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1711:1: ( ( rule__Transition__StateAssignment_2 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1711:1: ( ( rule__Transition__StateAssignment_2 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1712:1: ( rule__Transition__StateAssignment_2 )
+ {
+ before(grammarAccess.getTransitionAccess().getStateAssignment_2());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1713:1: ( rule__Transition__StateAssignment_2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1713:2: rule__Transition__StateAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Transition__StateAssignment_2_in_rule__Transition__Group__2__Impl3366);
+ rule__Transition__StateAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getStateAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1723:1: rule__Transition__Group__3 : rule__Transition__Group__3__Impl ;
+ public final void rule__Transition__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1727:1: ( rule__Transition__Group__3__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1728:2: rule__Transition__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__3__Impl_in_rule__Transition__Group__33396);
+ rule__Transition__Group__3__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__3"
+
+
+ // $ANTLR start "rule__Transition__Group__3__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1734:1: rule__Transition__Group__3__Impl : ( ( rule__Transition__Group_3__0 )? ) ;
+ public final void rule__Transition__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1738:1: ( ( ( rule__Transition__Group_3__0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1739:1: ( ( rule__Transition__Group_3__0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1739:1: ( ( rule__Transition__Group_3__0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1740:1: ( rule__Transition__Group_3__0 )?
+ {
+ before(grammarAccess.getTransitionAccess().getGroup_3());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1741:1: ( rule__Transition__Group_3__0 )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==18) ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1741:2: rule__Transition__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__Transition__Group_3__0_in_rule__Transition__Group__3__Impl3423);
+ rule__Transition__Group_3__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getGroup_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group_3__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1759:1: rule__Transition__Group_3__0 : rule__Transition__Group_3__0__Impl rule__Transition__Group_3__1 ;
+ public final void rule__Transition__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1763:1: ( rule__Transition__Group_3__0__Impl rule__Transition__Group_3__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1764:2: rule__Transition__Group_3__0__Impl rule__Transition__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__Transition__Group_3__0__Impl_in_rule__Transition__Group_3__03462);
+ rule__Transition__Group_3__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Transition__Group_3__1_in_rule__Transition__Group_3__03465);
+ rule__Transition__Group_3__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group_3__0"
+
+
+ // $ANTLR start "rule__Transition__Group_3__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1771:1: rule__Transition__Group_3__0__Impl : ( 'debug' ) ;
+ public final void rule__Transition__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1775:1: ( ( 'debug' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1776:1: ( 'debug' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1776:1: ( 'debug' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1777:1: 'debug'
+ {
+ before(grammarAccess.getTransitionAccess().getDebugKeyword_3_0());
+ match(input,18,FOLLOW_18_in_rule__Transition__Group_3__0__Impl3493);
+ after(grammarAccess.getTransitionAccess().getDebugKeyword_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group_3__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1790:1: rule__Transition__Group_3__1 : rule__Transition__Group_3__1__Impl ;
+ public final void rule__Transition__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1794:1: ( rule__Transition__Group_3__1__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1795:2: rule__Transition__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Transition__Group_3__1__Impl_in_rule__Transition__Group_3__13524);
+ rule__Transition__Group_3__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group_3__1"
+
+
+ // $ANTLR start "rule__Transition__Group_3__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1801:1: rule__Transition__Group_3__1__Impl : ( ( rule__Transition__DbgNameAssignment_3_1 ) ) ;
+ public final void rule__Transition__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1805:1: ( ( ( rule__Transition__DbgNameAssignment_3_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1806:1: ( ( rule__Transition__DbgNameAssignment_3_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1806:1: ( ( rule__Transition__DbgNameAssignment_3_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1807:1: ( rule__Transition__DbgNameAssignment_3_1 )
+ {
+ before(grammarAccess.getTransitionAccess().getDbgNameAssignment_3_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1808:1: ( rule__Transition__DbgNameAssignment_3_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1808:2: rule__Transition__DbgNameAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__Transition__DbgNameAssignment_3_1_in_rule__Transition__Group_3__1__Impl3551);
+ rule__Transition__DbgNameAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getDbgNameAssignment_3_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__Module__NameAssignment_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1823:1: rule__Module__NameAssignment_1 : ( ( rule__Module__NameAlternatives_1_0 ) ) ;
+ public final void rule__Module__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1827:1: ( ( ( rule__Module__NameAlternatives_1_0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1828:1: ( ( rule__Module__NameAlternatives_1_0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1828:1: ( ( rule__Module__NameAlternatives_1_0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1829:1: ( rule__Module__NameAlternatives_1_0 )
+ {
+ before(grammarAccess.getModuleAccess().getNameAlternatives_1_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1830:1: ( rule__Module__NameAlternatives_1_0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1830:2: rule__Module__NameAlternatives_1_0
+ {
+ pushFollow(FOLLOW_rule__Module__NameAlternatives_1_0_in_rule__Module__NameAssignment_13590);
+ rule__Module__NameAlternatives_1_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getModuleAccess().getNameAlternatives_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__NameAssignment_1"
+
+
+ // $ANTLR start "rule__Module__MachinesAssignment_2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1839:1: rule__Module__MachinesAssignment_2 : ( ruleStatemachine ) ;
+ public final void rule__Module__MachinesAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1843:1: ( ( ruleStatemachine ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1844:1: ( ruleStatemachine )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1844:1: ( ruleStatemachine )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1845:1: ruleStatemachine
+ {
+ before(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0());
+ pushFollow(FOLLOW_ruleStatemachine_in_rule__Module__MachinesAssignment_23623);
+ ruleStatemachine();
+
+ state._fsp--;
+
+ after(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__MachinesAssignment_2"
+
+
+ // $ANTLR start "rule__Statemachine__InitialAssignment_0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1854:1: rule__Statemachine__InitialAssignment_0 : ( ( 'initial' ) ) ;
+ public final void rule__Statemachine__InitialAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1858:1: ( ( ( 'initial' ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1859:1: ( ( 'initial' ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1859:1: ( ( 'initial' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1860:1: ( 'initial' )
+ {
+ before(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1861:1: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1862:1: 'initial'
+ {
+ before(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+ match(input,23,FOLLOW_23_in_rule__Statemachine__InitialAssignment_03659);
+ after(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__InitialAssignment_0"
+
+
+ // $ANTLR start "rule__Statemachine__NameAssignment_2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1877:1: rule__Statemachine__NameAssignment_2 : ( RULE_ID ) ;
+ public final void rule__Statemachine__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1881:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1882:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1882:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1883:1: RULE_ID
+ {
+ before(grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Statemachine__NameAssignment_23698);
+ after(grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Statemachine__ValueAssignment_3_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1892:1: rule__Statemachine__ValueAssignment_3_1 : ( RULE_INT ) ;
+ public final void rule__Statemachine__ValueAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1896:1: ( ( RULE_INT ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1897:1: ( RULE_INT )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1897:1: ( RULE_INT )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1898:1: RULE_INT
+ {
+ before(grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0());
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Statemachine__ValueAssignment_3_13729);
+ after(grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__ValueAssignment_3_1"
+
+
+ // $ANTLR start "rule__Statemachine__EventsAssignment_6"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1907:1: rule__Statemachine__EventsAssignment_6 : ( ruleEvent ) ;
+ public final void rule__Statemachine__EventsAssignment_6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1911:1: ( ( ruleEvent ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1912:1: ( ruleEvent )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1912:1: ( ruleEvent )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1913:1: ruleEvent
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0());
+ pushFollow(FOLLOW_ruleEvent_in_rule__Statemachine__EventsAssignment_63760);
+ ruleEvent();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__EventsAssignment_6"
+
+
+ // $ANTLR start "rule__Statemachine__StatesAssignment_8"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1922:1: rule__Statemachine__StatesAssignment_8 : ( ruleState ) ;
+ public final void rule__Statemachine__StatesAssignment_8() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1926:1: ( ( ruleState ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1927:1: ( ruleState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1927:1: ( ruleState )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1928:1: ruleState
+ {
+ before(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0());
+ pushFollow(FOLLOW_ruleState_in_rule__Statemachine__StatesAssignment_83791);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__StatesAssignment_8"
+
+
+ // $ANTLR start "rule__Statemachine__DbgNameAssignment_10_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1937:1: rule__Statemachine__DbgNameAssignment_10_1 : ( RULE_ID ) ;
+ public final void rule__Statemachine__DbgNameAssignment_10_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1941:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1942:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1942:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1943:1: RULE_ID
+ {
+ before(grammarAccess.getStatemachineAccess().getDbgNameIDTerminalRuleCall_10_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Statemachine__DbgNameAssignment_10_13822);
+ after(grammarAccess.getStatemachineAccess().getDbgNameIDTerminalRuleCall_10_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__DbgNameAssignment_10_1"
+
+
+ // $ANTLR start "rule__Event__NameAssignment"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1952:1: rule__Event__NameAssignment : ( RULE_ID ) ;
+ public final void rule__Event__NameAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1956:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1957:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1957:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1958:1: RULE_ID
+ {
+ before(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Event__NameAssignment3853);
+ after(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Event__NameAssignment"
+
+
+ // $ANTLR start "rule__SimpleState__InitialAssignment_0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1967:1: rule__SimpleState__InitialAssignment_0 : ( ( 'initial' ) ) ;
+ public final void rule__SimpleState__InitialAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1971:1: ( ( ( 'initial' ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1972:1: ( ( 'initial' ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1972:1: ( ( 'initial' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1973:1: ( 'initial' )
+ {
+ before(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1974:1: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1975:1: 'initial'
+ {
+ before(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+ match(input,23,FOLLOW_23_in_rule__SimpleState__InitialAssignment_03889);
+ after(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__InitialAssignment_0"
+
+
+ // $ANTLR start "rule__SimpleState__NameAssignment_2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1990:1: rule__SimpleState__NameAssignment_2 : ( RULE_ID ) ;
+ public final void rule__SimpleState__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1994:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1995:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1995:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:1996:1: RULE_ID
+ {
+ before(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SimpleState__NameAssignment_23928);
+ after(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__NameAssignment_2"
+
+
+ // $ANTLR start "rule__SimpleState__ValueAssignment_3_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2005:1: rule__SimpleState__ValueAssignment_3_1 : ( RULE_INT ) ;
+ public final void rule__SimpleState__ValueAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2009:1: ( ( RULE_INT ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2010:1: ( RULE_INT )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2010:1: ( RULE_INT )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2011:1: RULE_INT
+ {
+ before(grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0());
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__SimpleState__ValueAssignment_3_13959);
+ after(grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__ValueAssignment_3_1"
+
+
+ // $ANTLR start "rule__SimpleState__TransitionsAssignment_5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2020:1: rule__SimpleState__TransitionsAssignment_5 : ( ruleTransition ) ;
+ public final void rule__SimpleState__TransitionsAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2024:1: ( ( ruleTransition ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2025:1: ( ruleTransition )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2025:1: ( ruleTransition )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2026:1: ruleTransition
+ {
+ before(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0());
+ pushFollow(FOLLOW_ruleTransition_in_rule__SimpleState__TransitionsAssignment_53990);
+ ruleTransition();
+
+ state._fsp--;
+
+ after(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__TransitionsAssignment_5"
+
+
+ // $ANTLR start "rule__SimpleState__DbgNameAssignment_7_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2035:1: rule__SimpleState__DbgNameAssignment_7_1 : ( RULE_ID ) ;
+ public final void rule__SimpleState__DbgNameAssignment_7_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2039:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2040:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2040:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2041:1: RULE_ID
+ {
+ before(grammarAccess.getSimpleStateAccess().getDbgNameIDTerminalRuleCall_7_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SimpleState__DbgNameAssignment_7_14021);
+ after(grammarAccess.getSimpleStateAccess().getDbgNameIDTerminalRuleCall_7_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__DbgNameAssignment_7_1"
+
+
+ // $ANTLR start "rule__CompoundState__InitialAssignment_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2050:1: rule__CompoundState__InitialAssignment_1 : ( ( 'initial' ) ) ;
+ public final void rule__CompoundState__InitialAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2054:1: ( ( ( 'initial' ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2055:1: ( ( 'initial' ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2055:1: ( ( 'initial' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2056:1: ( 'initial' )
+ {
+ before(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2057:1: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2058:1: 'initial'
+ {
+ before(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+ match(input,23,FOLLOW_23_in_rule__CompoundState__InitialAssignment_14057);
+ after(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__InitialAssignment_1"
+
+
+ // $ANTLR start "rule__CompoundState__NameAssignment_3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2073:1: rule__CompoundState__NameAssignment_3 : ( RULE_ID ) ;
+ public final void rule__CompoundState__NameAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2077:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2078:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2078:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2079:1: RULE_ID
+ {
+ before(grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CompoundState__NameAssignment_34096);
+ after(grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__NameAssignment_3"
+
+
+ // $ANTLR start "rule__CompoundState__MachineAssignment_5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2088:1: rule__CompoundState__MachineAssignment_5 : ( ( RULE_ID ) ) ;
+ public final void rule__CompoundState__MachineAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2092:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2093:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2093:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2094:1: ( RULE_ID )
+ {
+ before(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2095:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2096:1: RULE_ID
+ {
+ before(grammarAccess.getCompoundStateAccess().getMachineStatemachineIDTerminalRuleCall_5_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CompoundState__MachineAssignment_54131);
+ after(grammarAccess.getCompoundStateAccess().getMachineStatemachineIDTerminalRuleCall_5_0_1());
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__MachineAssignment_5"
+
+
+ // $ANTLR start "rule__CompoundState__TransitionsAssignment_7"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2107:1: rule__CompoundState__TransitionsAssignment_7 : ( ruleTransition ) ;
+ public final void rule__CompoundState__TransitionsAssignment_7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2111:1: ( ( ruleTransition ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2112:1: ( ruleTransition )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2112:1: ( ruleTransition )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2113:1: ruleTransition
+ {
+ before(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0());
+ pushFollow(FOLLOW_ruleTransition_in_rule__CompoundState__TransitionsAssignment_74166);
+ ruleTransition();
+
+ state._fsp--;
+
+ after(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__TransitionsAssignment_7"
+
+
+ // $ANTLR start "rule__CompoundState__DbgNameAssignment_9_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2122:1: rule__CompoundState__DbgNameAssignment_9_1 : ( RULE_ID ) ;
+ public final void rule__CompoundState__DbgNameAssignment_9_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2126:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2127:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2127:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2128:1: RULE_ID
+ {
+ before(grammarAccess.getCompoundStateAccess().getDbgNameIDTerminalRuleCall_9_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CompoundState__DbgNameAssignment_9_14197);
+ after(grammarAccess.getCompoundStateAccess().getDbgNameIDTerminalRuleCall_9_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__DbgNameAssignment_9_1"
+
+
+ // $ANTLR start "rule__Transition__EventAssignment_0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2137:1: rule__Transition__EventAssignment_0 : ( ( RULE_ID ) ) ;
+ public final void rule__Transition__EventAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2141:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2142:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2142:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2143:1: ( RULE_ID )
+ {
+ before(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2144:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2145:1: RULE_ID
+ {
+ before(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__EventAssignment_04232);
+ after(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1());
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__EventAssignment_0"
+
+
+ // $ANTLR start "rule__Transition__StateAssignment_2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2156:1: rule__Transition__StateAssignment_2 : ( ( RULE_ID ) ) ;
+ public final void rule__Transition__StateAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2160:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2161:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2161:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2162:1: ( RULE_ID )
+ {
+ before(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2163:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2164:1: RULE_ID
+ {
+ before(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__StateAssignment_24271);
+ after(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1());
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__StateAssignment_2"
+
+
+ // $ANTLR start "rule__Transition__DbgNameAssignment_3_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2175:1: rule__Transition__DbgNameAssignment_3_1 : ( RULE_ID ) ;
+ public final void rule__Transition__DbgNameAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2179:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2180:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2180:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalStates.g:2181:1: RULE_ID
+ {
+ before(grammarAccess.getTransitionAccess().getDbgNameIDTerminalRuleCall_3_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__DbgNameAssignment_3_14306);
+ after(grammarAccess.getTransitionAccess().getDbgNameIDTerminalRuleCall_3_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__DbgNameAssignment_3_1"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleModule_in_entryRuleModule61 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModule68 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__0_in_ruleModule94 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStatemachine_in_entryRuleStatemachine121 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStatemachine128 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__0_in_ruleStatemachine154 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent181 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEvent188 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Event__NameAssignment_in_ruleEvent214 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_entryRuleState241 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleState248 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Alternatives_in_ruleState274 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleState_in_entryRuleSimpleState301 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSimpleState308 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__0_in_ruleSimpleState334 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundState_in_entryRuleCompoundState361 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCompoundState368 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__0_in_ruleCompoundState394 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition421 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTransition428 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__0_in_ruleTransition454 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_rule__Module__NameAlternatives_1_0490 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Module__NameAlternatives_1_0507 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleState_in_rule__State__Alternatives539 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundState_in_rule__State__Alternatives556 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__0586 = new BitSet(new long[]{0x0000000000000030L});
+ public static final BitSet FOLLOW_rule__Module__Group__1_in_rule__Module__Group__0589 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_rule__Module__Group__0__Impl617 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__1648 = new BitSet(new long[]{0x0000000000801000L});
+ public static final BitSet FOLLOW_rule__Module__Group__2_in_rule__Module__Group__1651 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__NameAssignment_1_in_rule__Module__Group__1__Impl678 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__2708 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__MachinesAssignment_2_in_rule__Module__Group__2__Impl735 = new BitSet(new long[]{0x0000000000801002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__0__Impl_in_rule__Statemachine__Group__0772 = new BitSet(new long[]{0x0000000000801000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__1_in_rule__Statemachine__Group__0775 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__InitialAssignment_0_in_rule__Statemachine__Group__0__Impl802 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__1__Impl_in_rule__Statemachine__Group__1833 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__2_in_rule__Statemachine__Group__1836 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__Statemachine__Group__1__Impl864 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__2__Impl_in_rule__Statemachine__Group__2895 = new BitSet(new long[]{0x0000000000022000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__3_in_rule__Statemachine__Group__2898 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__NameAssignment_2_in_rule__Statemachine__Group__2__Impl925 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__3__Impl_in_rule__Statemachine__Group__3955 = new BitSet(new long[]{0x0000000000022000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__4_in_rule__Statemachine__Group__3958 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__0_in_rule__Statemachine__Group__3__Impl985 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__4__Impl_in_rule__Statemachine__Group__41016 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__5_in_rule__Statemachine__Group__41019 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__Statemachine__Group__4__Impl1047 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__5__Impl_in_rule__Statemachine__Group__51078 = new BitSet(new long[]{0x0000000000008020L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__6_in_rule__Statemachine__Group__51081 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_14_in_rule__Statemachine__Group__5__Impl1109 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__6__Impl_in_rule__Statemachine__Group__61140 = new BitSet(new long[]{0x0000000000008020L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__7_in_rule__Statemachine__Group__61143 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__EventsAssignment_6_in_rule__Statemachine__Group__6__Impl1170 = new BitSet(new long[]{0x0000000000000022L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__7__Impl_in_rule__Statemachine__Group__71201 = new BitSet(new long[]{0x0000000000990000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__8_in_rule__Statemachine__Group__71204 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_rule__Statemachine__Group__7__Impl1232 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__8__Impl_in_rule__Statemachine__Group__81263 = new BitSet(new long[]{0x0000000000990000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__9_in_rule__Statemachine__Group__81266 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__StatesAssignment_8_in_rule__Statemachine__Group__8__Impl1293 = new BitSet(new long[]{0x0000000000980002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__9__Impl_in_rule__Statemachine__Group__91324 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__10_in_rule__Statemachine__Group__91327 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__Statemachine__Group__9__Impl1355 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__10__Impl_in_rule__Statemachine__Group__101386 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_10__0_in_rule__Statemachine__Group__10__Impl1413 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__0__Impl_in_rule__Statemachine__Group_3__01466 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__1_in_rule__Statemachine__Group_3__01469 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_rule__Statemachine__Group_3__0__Impl1497 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__1__Impl_in_rule__Statemachine__Group_3__11528 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__ValueAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl1555 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_10__0__Impl_in_rule__Statemachine__Group_10__01589 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_10__1_in_rule__Statemachine__Group_10__01592 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__Statemachine__Group_10__0__Impl1620 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_10__1__Impl_in_rule__Statemachine__Group_10__11651 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__DbgNameAssignment_10_1_in_rule__Statemachine__Group_10__1__Impl1678 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__0__Impl_in_rule__SimpleState__Group__01712 = new BitSet(new long[]{0x0000000000880000L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__1_in_rule__SimpleState__Group__01715 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__InitialAssignment_0_in_rule__SimpleState__Group__0__Impl1742 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__1__Impl_in_rule__SimpleState__Group__11773 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__2_in_rule__SimpleState__Group__11776 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_rule__SimpleState__Group__1__Impl1804 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__2__Impl_in_rule__SimpleState__Group__21835 = new BitSet(new long[]{0x0000000000022000L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__3_in_rule__SimpleState__Group__21838 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__NameAssignment_2_in_rule__SimpleState__Group__2__Impl1865 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__3__Impl_in_rule__SimpleState__Group__31895 = new BitSet(new long[]{0x0000000000022000L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__4_in_rule__SimpleState__Group__31898 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_3__0_in_rule__SimpleState__Group__3__Impl1925 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__4__Impl_in_rule__SimpleState__Group__41956 = new BitSet(new long[]{0x0000000000010020L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__5_in_rule__SimpleState__Group__41959 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__SimpleState__Group__4__Impl1987 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__5__Impl_in_rule__SimpleState__Group__52018 = new BitSet(new long[]{0x0000000000010020L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__6_in_rule__SimpleState__Group__52021 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__TransitionsAssignment_5_in_rule__SimpleState__Group__5__Impl2048 = new BitSet(new long[]{0x0000000000000022L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__6__Impl_in_rule__SimpleState__Group__62079 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__7_in_rule__SimpleState__Group__62082 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__SimpleState__Group__6__Impl2110 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__7__Impl_in_rule__SimpleState__Group__72141 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_7__0_in_rule__SimpleState__Group__7__Impl2168 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_3__0__Impl_in_rule__SimpleState__Group_3__02215 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_3__1_in_rule__SimpleState__Group_3__02218 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_rule__SimpleState__Group_3__0__Impl2246 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_3__1__Impl_in_rule__SimpleState__Group_3__12277 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__ValueAssignment_3_1_in_rule__SimpleState__Group_3__1__Impl2304 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_7__0__Impl_in_rule__SimpleState__Group_7__02338 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_7__1_in_rule__SimpleState__Group_7__02341 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__SimpleState__Group_7__0__Impl2369 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_7__1__Impl_in_rule__SimpleState__Group_7__12400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__DbgNameAssignment_7_1_in_rule__SimpleState__Group_7__1__Impl2427 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__0__Impl_in_rule__CompoundState__Group__02461 = new BitSet(new long[]{0x0000000000880000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__1_in_rule__CompoundState__Group__02464 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_20_in_rule__CompoundState__Group__0__Impl2492 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__1__Impl_in_rule__CompoundState__Group__12523 = new BitSet(new long[]{0x0000000000880000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__2_in_rule__CompoundState__Group__12526 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__InitialAssignment_1_in_rule__CompoundState__Group__1__Impl2553 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__2__Impl_in_rule__CompoundState__Group__22584 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__3_in_rule__CompoundState__Group__22587 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_rule__CompoundState__Group__2__Impl2615 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__3__Impl_in_rule__CompoundState__Group__32646 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__4_in_rule__CompoundState__Group__32649 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__NameAssignment_3_in_rule__CompoundState__Group__3__Impl2676 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__4__Impl_in_rule__CompoundState__Group__42706 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__5_in_rule__CompoundState__Group__42709 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_21_in_rule__CompoundState__Group__4__Impl2737 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__5__Impl_in_rule__CompoundState__Group__52768 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__6_in_rule__CompoundState__Group__52771 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__MachineAssignment_5_in_rule__CompoundState__Group__5__Impl2798 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__6__Impl_in_rule__CompoundState__Group__62828 = new BitSet(new long[]{0x0000000000010020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__7_in_rule__CompoundState__Group__62831 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__CompoundState__Group__6__Impl2859 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__7__Impl_in_rule__CompoundState__Group__72890 = new BitSet(new long[]{0x0000000000010020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__8_in_rule__CompoundState__Group__72893 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__TransitionsAssignment_7_in_rule__CompoundState__Group__7__Impl2920 = new BitSet(new long[]{0x0000000000000022L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__8__Impl_in_rule__CompoundState__Group__82951 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__9_in_rule__CompoundState__Group__82954 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__CompoundState__Group__8__Impl2982 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__9__Impl_in_rule__CompoundState__Group__93013 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group_9__0_in_rule__CompoundState__Group__9__Impl3040 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group_9__0__Impl_in_rule__CompoundState__Group_9__03091 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group_9__1_in_rule__CompoundState__Group_9__03094 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__CompoundState__Group_9__0__Impl3122 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group_9__1__Impl_in_rule__CompoundState__Group_9__13153 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__DbgNameAssignment_9_1_in_rule__CompoundState__Group_9__1__Impl3180 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__0__Impl_in_rule__Transition__Group__03214 = new BitSet(new long[]{0x0000000000400000L});
+ public static final BitSet FOLLOW_rule__Transition__Group__1_in_rule__Transition__Group__03217 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__EventAssignment_0_in_rule__Transition__Group__0__Impl3244 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__1__Impl_in_rule__Transition__Group__13274 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__Transition__Group__2_in_rule__Transition__Group__13277 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_rule__Transition__Group__1__Impl3305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__2__Impl_in_rule__Transition__Group__23336 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_rule__Transition__Group__3_in_rule__Transition__Group__23339 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__StateAssignment_2_in_rule__Transition__Group__2__Impl3366 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__3__Impl_in_rule__Transition__Group__33396 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group_3__0_in_rule__Transition__Group__3__Impl3423 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group_3__0__Impl_in_rule__Transition__Group_3__03462 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__Transition__Group_3__1_in_rule__Transition__Group_3__03465 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__Transition__Group_3__0__Impl3493 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group_3__1__Impl_in_rule__Transition__Group_3__13524 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__DbgNameAssignment_3_1_in_rule__Transition__Group_3__1__Impl3551 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__NameAlternatives_1_0_in_rule__Module__NameAssignment_13590 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStatemachine_in_rule__Module__MachinesAssignment_23623 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_23_in_rule__Statemachine__InitialAssignment_03659 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Statemachine__NameAssignment_23698 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__Statemachine__ValueAssignment_3_13729 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEvent_in_rule__Statemachine__EventsAssignment_63760 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_rule__Statemachine__StatesAssignment_83791 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Statemachine__DbgNameAssignment_10_13822 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Event__NameAssignment3853 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_23_in_rule__SimpleState__InitialAssignment_03889 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__SimpleState__NameAssignment_23928 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__SimpleState__ValueAssignment_3_13959 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_rule__SimpleState__TransitionsAssignment_53990 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__SimpleState__DbgNameAssignment_7_14021 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_23_in_rule__CompoundState__InitialAssignment_14057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__CompoundState__NameAssignment_34096 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__CompoundState__MachineAssignment_54131 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_rule__CompoundState__TransitionsAssignment_74166 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__CompoundState__DbgNameAssignment_9_14197 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__EventAssignment_04232 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__StateAssignment_24271 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__DbgNameAssignment_3_14306 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/internal/StatesActivator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/internal/StatesActivator.java
new file mode 100644
index 0000000..1ec4b6f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/internal/StatesActivator.java
@@ -0,0 +1,82 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.internal;
+
+import static com.google.inject.util.Modules.override;
+import static com.google.inject.Guice.createInjector;
+
+import org.apache.log4j.Logger;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class StatesActivator extends AbstractUIPlugin {
+
+ private Map<String,Injector> injectors = new HashMap<String,Injector>();
+ private static StatesActivator INSTANCE;
+
+ public Injector getInjector(String languageName) {
+ return injectors.get(languageName);
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ try {
+ registerInjectorFor("org.eclipse.ocl.tutorial.eclipsecon2011.States");
+
+ } catch (Exception e) {
+ Logger.getLogger(getClass()).error(e.getMessage(), e);
+ throw e;
+ }
+ }
+
+ protected void registerInjectorFor(String language) throws Exception {
+ injectors.put(language, createInjector(
+ override(override(getRuntimeModule(language)).with(getSharedStateModule())).with(getUiModule(language))));
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.clear();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static StatesActivator getInstance() {
+ return INSTANCE;
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if ("org.eclipse.ocl.tutorial.eclipsecon2011.States".equals(grammar)) {
+ return new org.eclipse.ocl.tutorial.eclipsecon2011.StatesRuntimeModule();
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if ("org.eclipse.ocl.tutorial.eclipsecon2011.States".equals(grammar)) {
+ return new org.eclipse.ocl.tutorial.eclipsecon2011.ui.StatesUiModule(this);
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new org.eclipse.xtext.ui.shared.SharedStateModule();
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesActivator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesActivator.java
new file mode 100644
index 0000000..43d9461
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesActivator.java
@@ -0,0 +1,204 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesActivator.java,v 1.1 2011/03/12 20:46:05 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+import java.io.IOException;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.text.templates.ContextTypeRegistry;
+import org.eclipse.jface.text.templates.persistence.TemplateStore;
+import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry;
+import org.eclipse.ui.editors.text.templates.ContributionTemplateStore;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class StatesActivator extends org.eclipse.ocl.tutorial.eclipsecon2011.ui.internal.StatesActivator {
+
+ Logger logger = Logger.getLogger(StatesActivator.class);
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.ocl.tutorial.eclipsecon2011.states.ui";
+
+ private static final String RESOURCE_NAME = PLUGIN_ID + ".messages";
+
+
+ /** Key to store our templates. */
+ private static final String TEMPLATES_KEY = PLUGIN_ID + ".templates";
+
+ public static final String PREFIX = StatesActivator.PLUGIN_ID + ".templates.contextType.";
+
+ public static final String EVENTS = PREFIX + "events";
+ public static final String EVENT = PREFIX + "Event";
+ public static final String COMMAND = PREFIX + "Command";
+ public static final String TRANSITION = PREFIX + "Transition";
+ public static final String ACTIONS = PREFIX + "actions";
+ public static final String STATE = PREFIX + "state";
+ // The shared instance
+ private static StatesActivator plugin;
+
+ private ResourceBundle resourceBundle;
+ private ContextTypeRegistry contextTypeRegistry;
+ private TemplateStore templateStore;
+
+ /**
+ * The constructor
+ */
+ public StatesActivator() {
+ try {
+ resourceBundle = ResourceBundle.getBundle(RESOURCE_NAME);
+ } catch (MissingResourceException e) {
+ resourceBundle = null;
+ }
+
+ }
+
+ public ResourceBundle getResourceBundle() {
+ return resourceBundle;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ setDefault(this);
+ logger.debug("Starting fowlerdsl.ui activator: " + this.getClass().getName());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ setDefault(null);
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static StatesActivator getDefault() {
+ return plugin;
+ }
+
+ private static void setDefault(StatesActivator activator) {
+ plugin = activator;
+ }
+
+ /**
+ * Returns the template context type registry for the Fowler-Dsl editor.
+ *
+ * @return the template context type registry for the Fowler-Dsl editor
+ */
+ public ContextTypeRegistry getTemplateContextRegistry() {
+ if (contextTypeRegistry == null) {
+ ContributionContextTypeRegistry registry = new ContributionContextTypeRegistry();
+ registry.addContextType(EVENTS);
+ registry.addContextType(ACTIONS);
+ registry.addContextType(TRANSITION);
+ registry.addContextType(EVENT);
+ registry.addContextType(COMMAND);
+ registry.addContextType(STATE);
+ contextTypeRegistry = registry;
+ }
+ return contextTypeRegistry;
+ }
+
+ /**
+ * Returns the template store for the Fowler-Dsl editor.
+ *
+ * @return the template store for the Fowler-Dsl editor
+ */
+ public TemplateStore getTemplateStore() {
+ if (templateStore == null) {
+ templateStore = new ContributionTemplateStore(getTemplateContextRegistry(), getPreferenceStore(),
+ TEMPLATES_KEY);
+ try {
+ templateStore.load();
+ }
+ catch (IOException e) {
+ logger.error(e);
+ }
+ }
+ return templateStore;
+ }
+
+ public static void log(IStatus status) {
+ getDefault().getLog().log(status);
+ }
+
+ /**
+ * Writes the message to the plug-in's log
+ *
+ * @param message the text to write to the log
+ */
+ public static void log(String message, Throwable exception) {
+ IStatus status = createErrorStatus(message, exception);
+ getDefault().getLog().log(status);
+ }
+
+ public static void log(Throwable exception) {
+ getDefault().getLog().log(createErrorStatus(
+ getResourceString("Plugin.internal_error"), exception));
+ }
+ /**
+ * Returns a new <code>IStatus</code> for this plug-in
+ */
+ public static IStatus createErrorStatus(String message,
+ Throwable exception) {
+ return new Status(IStatus.ERROR, PLUGIN_ID, 0, message == null ? "" : message, exception);
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle,
+ * or 'key' if not found.
+ */
+ public static String getResourceString(String key) {
+ String bundleString;
+ ResourceBundle bundle = getDefault().getResourceBundle();
+ if (bundle != null) {
+ try {
+ bundleString = bundle.getString(key);
+ } catch (MissingResourceException e) {
+ log(e);
+ bundleString = "!" + key + "!";
+ }
+ } else {
+ bundleString = "!" + key + "!";
+ }
+ return bundleString;
+ }
+
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/StatesUiModule.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/StatesUiModule.java
new file mode 100644
index 0000000..83e079c
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/StatesUiModule.java
@@ -0,0 +1,28 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesUiModule.java,v 1.1 2011/03/12 20:46:06 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class StatesUiModule extends org.eclipse.ocl.tutorial.eclipsecon2011.ui.AbstractStatesUiModule {
+ public StatesUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/StatesProposalProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/StatesProposalProvider.java
new file mode 100644
index 0000000..3fa6a0b
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/StatesProposalProvider.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesProposalProvider.java,v 1.1 2011/03/12 20:46:05 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.AbstractStatesProposalProvider;
+/**
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant
+ */
+public class StatesProposalProvider extends AbstractStatesProposalProvider {
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/StatesDescriptionLabelProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/StatesDescriptionLabelProvider.java
new file mode 100644
index 0000000..92e982a
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/StatesDescriptionLabelProvider.java
@@ -0,0 +1,40 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesDescriptionLabelProvider.java,v 1.1 2011/03/12 20:46:05 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.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 StatesDescriptionLabelProvider 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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/StatesLabelProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/StatesLabelProvider.java
new file mode 100644
index 0000000..db9f1a6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/StatesLabelProvider.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesLabelProvider.java,v 1.1 2011/03/12 20:46:05 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.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 StatesLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ public StatesLabelProvider(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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/outline/StatesOutlineTreeProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/outline/StatesOutlineTreeProvider.java
new file mode 100644
index 0000000..cead380
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/outline/StatesOutlineTreeProvider.java
@@ -0,0 +1,27 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesOutlineTreeProvider.java,v 1.1 2011/03/12 20:46:06 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * customization of the default outline structure
+ *
+ */
+public class StatesOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/templates/templates.xml b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/templates/templates.xml
new file mode 100644
index 0000000..da339a0
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states.ui/templates/templates.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates>
+ <template name="empty Statemachine" description="template for an empty Statemachine"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.states.ui.templates.module"
+ context="org.eclipse.ocl.tutorial.eclipsecon2011.States.kw_module"
+ enabled="true">module "org.example"
+
+statemachine Machine
+{
+ events START STOP;
+ ${cursor}
+ initial state Start
+ {
+ START => Start
+ }
+
+ state Stop
+ {
+ STOP => Stop
+ }
+}
+ </template>
+
+ <template name="state" description="state definition"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.states.ui.templates.state"
+ context="org.eclipse.ocl.tutorial.eclipsecon2011.States.State"
+ enabled="true">state ${name}
+{
+ ${cursor}
+}</template>
+
+ <template name="transition" description="event transition"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.states.ui.templates.transition"
+ context="org.eclipse.ocl.tutorial.eclipsecon2011.States.Transition"
+ enabled="true">
+ ${event:CrossReference('Transition.event')} => ${state:CrossReference('Transition.state')}
+ </template>
+
+ <template name="event" description="event definition"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.states.ui.templates.event"
+ context="org.eclipse.ocl.tutorial.eclipsecon2011.States.Event"
+ enabled="true">${event} ${shortCode}</template>
+
+</templates>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.classpath b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.classpath
new file mode 100644
index 0000000..59cf397
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.cvsignore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.cvsignore
new file mode 100644
index 0000000..6371894
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.cvsignore
@@ -0,0 +1,2 @@
+bin
+.antlr-generator-3.2.0.jar
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.project b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.project
new file mode 100644
index 0000000..6c9e510
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ocl.tutorial.eclipsecon2011.states</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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.core.resources.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..52164b2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Aug 18 18:37:57 CEST 2009
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.core.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0df49b9
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,369 @@
+#Mon Mar 07 12:46:00 GMT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=disabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.launching.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..cd7271f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.ui.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..f6caf59
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,118 @@
+#Wed Oct 14 22:36:24 CEST 2009
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=false
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_Xtext
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_'Xtext'
+formatter_settings_version=11
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"></template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"></template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"></template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} itemis AG (http\://www.itemis.eu) and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *******************************************************************************/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user} - Initial contribution and API\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"></template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"></template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"></template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"></template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=false
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.pde.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..2bd5814
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,25 @@
+#Wed Aug 12 21:14:13 CEST 2009
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/Generate States Editor.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/Generate States Editor.launch
new file mode 100644
index 0000000..95fd1d7
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/Generate States Editor.launch
@@ -0,0 +1,13 @@
+<?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="${workspace}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ocl.tutorial.eclipsecon2011.states"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</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/ocl/tutorial/eclipsecon2011/States.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ocl.tutorial.eclipsecon2011.states"/>
+</launchConfiguration>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/META-INF/MANIFEST.MF b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..fbd2181
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/META-INF/MANIFEST.MF
@@ -0,0 +1,32 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EclipseCon 2011 Tutorial Xtext States Editor
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-Version: 1.0.0
+Bundle-SymbolicName: org.eclipse.ocl.tutorial.eclipsecon2011.states;singleton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;bundle-version="2.0.0";visibility:=reexport,
+ org.eclipse.xtext.generator;bundle-version="2.0.0";resolution:=optional,
+ org.apache.log4j;bundle-version="1.2.15";visibility:=reexport,
+ de.itemis.xtext.antlr;bundle-version="2.0.0";resolution:=optional,
+ org.eclipse.emf.mwe.core;bundle-version="1.0.0",
+ org.eclipse.xtext.util;bundle-version="2.0.0",
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.eclipse.xtend;bundle-version="1.1.0",
+ org.eclipse.xtend.typesystem.emf;bundle-version="1.0.1",
+ org.eclipse.emf.mwe2.launch;bundle-version="2.0.0";resolution:=optional,
+ org.antlr.runtime,
+ org.eclipse.ocl.examples.xtext.completeocl;bundle-version="3.1.0";visibility:=reexport
+Export-Package: org.eclipse.ocl.tutorial.eclipsecon2011,
+ org.eclipse.ocl.tutorial.eclipsecon2011.validation,
+ org.eclipse.ocl.tutorial.eclipsecon2011.services,
+ org.eclipse.ocl.tutorial.eclipsecon2011.states,
+ org.eclipse.ocl.tutorial.eclipsecon2011.states.impl,
+ org.eclipse.ocl.tutorial.eclipsecon2011.states.util,
+ org.eclipse.ocl.tutorial.eclipsecon2011.parseTreeConstruction,
+ org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr,
+ org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal
+Import-Package: org.apache.commons.logging;version="1.0.4",
+ org.apache.log4j
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/about.html b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/about.html
new file mode 100644
index 0000000..1b8f940
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/build.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/build.properties
new file mode 100644
index 0000000..593d699
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/build.properties
@@ -0,0 +1,7 @@
+source.. = src/,\
+ src-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/plugin.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/plugin.properties
new file mode 100644
index 0000000..b733676
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.1 2011/03/12 20:46:05 ewillink Exp $
+
+pluginName = EclipseCon 2011 Tutorial Xtext States Editor
+providerName = Eclipse Modeling Project
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/plugin.xml b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/plugin.xml
new file mode 100644
index 0000000..0aa6dd1
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/plugin.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://ocl.eclipse.org/tutorial/eclipsecon2011/States"
+ class = "org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage"
+ genModel = "org/eclipse/ocl/tutorial/eclipsecon2011/States.genmodel" />
+
+ </extension>
+
+</plugin>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/AbstractStatesRuntimeModule.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/AbstractStatesRuntimeModule.java
new file mode 100644
index 0000000..bb0350e
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/AbstractStatesRuntimeModule.java
@@ -0,0 +1,92 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+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.ocl.tutorial.eclipsecon2011.StatesRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractStatesRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/ocl/tutorial/eclipsecon2011/States.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.ocl.tutorial.eclipsecon2011.States");
+ }
+
+ 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("states");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parseTreeConstructor.ParseTreeConstructorFragment
+ public Class<? extends org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor> bindIParseTreeConstructor() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.parseTreeConstruction.StatesParsetreeConstructor.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.StatesParser.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.ocl.tutorial.eclipsecon2011.parser.antlr.StatesAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalStatesLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalStatesLexer> provideInternalStatesLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalStatesLexer.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.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalStatesLexer.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.ocl.tutorial.eclipsecon2011.validation.StatesJavaValidator> bindStatesJavaValidator() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.validation.StatesJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.formatting.StatesFormatter.class;
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore
new file mode 100644
index 0000000..06fb1ac
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore
@@ -0,0 +1,46 @@
+<?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="states"
+ nsURI="http://ocl.eclipse.org/tutorial/eclipsecon2011/States" nsPrefix="states">
+ <eClassifiers xsi:type="ecore:EClass" name="Module">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="machines" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Statemachine">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Event"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dbgName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Event">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="State">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitions" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Transition"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dbgName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SimpleState" eSuperTypes="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompoundState" eSuperTypes="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="machine" eType="ecore:EClass platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Transition">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="event" eType="ecore:EClass platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Event"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="ecore:EClass platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dbgName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.genmodel b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.genmodel
new file mode 100644
index 0000000..ebc8975
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.genmodel
@@ -0,0 +1,45 @@
+<?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.ocl.tutorial.eclipsecon2011.states/src-gen"
+ editDirectory="/org.eclipse.ocl.tutorial.eclipsecon2011.states.edit/src" editorDirectory="/org.eclipse.ocl.tutorial.eclipsecon2011.states.editor/src"
+ modelPluginID="org.eclipse.ocl.tutorial.eclipsecon2011.states" forceOverwrite="true"
+ modelName="States" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.ocl.tutorial.eclipsecon2011.states.edit"
+ editorPluginID="org.eclipse.ocl.tutorial.eclipsecon2011.states.editor">
+ <genPackages prefix="States" basePackage="org.eclipse.ocl.tutorial.eclipsecon2011"
+ disposableProviderFactory="true" ecorePackage="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#/">
+ <genClasses ecoreClass="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Module">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Module/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Module/machines"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine/initial"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine/value"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine/events"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine/states"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Statemachine/dbgName"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Event">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Event/name"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State/initial"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State/transitions"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//State/dbgName"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//SimpleState">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//SimpleState/value"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//CompoundState">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//CompoundState/machine"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Transition">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Transition/event"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Transition/state"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.ecore#//Transition/dbgName"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.xmi b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.xmi
new file mode 100644
index 0000000..003848c
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/States.xmi
@@ -0,0 +1,327 @@
+<?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.ocl.tutorial.eclipsecon2011.States" usedGrammars="/1">
+ <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="states">
+ <ePackage href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="Module">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//Module"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="module"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="machines" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Statemachine">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//Statemachine"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="initial"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="statemachine"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="value"/>
+ <elements xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Keyword" value="events"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="events" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="states" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="debug"/>
+ <elements xsi:type="xtext:Assignment" feature="dbgName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Event">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//Event"/>
+ </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="State">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//State"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SimpleState">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//SimpleState"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="initial"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="state"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="value"/>
+ <elements xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="transitions" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="debug"/>
+ <elements xsi:type="xtext:Assignment" feature="dbgName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="CompoundState">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//CompoundState"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="compound"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="initial"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="state"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="machine"/>
+ <elements xsi:type="xtext:Assignment" feature="machine" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//Statemachine"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="transitions" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="debug"/>
+ <elements xsi:type="xtext:Assignment" feature="dbgName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Transition">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//Transition"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="event" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//Event"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="=>"/>
+ <elements xsi:type="xtext:Assignment" feature="state" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/States#//State"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="debug"/>
+ <elements xsi:type="xtext:Assignment" feature="dbgName" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ </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="""/>
+ <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="""/>
+ <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>
+ <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="""/>
+ <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="
"/>
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="
"/>
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ </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="	"/>
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ </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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/StatesStandaloneSetupGenerated.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/StatesStandaloneSetupGenerated.java
new file mode 100644
index 0000000..9e33d54
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/StatesStandaloneSetupGenerated.java
@@ -0,0 +1,43 @@
+
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+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 StatesStandaloneSetupGenerated 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.ocl.tutorial.eclipsecon2011.StatesRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://ocl.eclipse.org/tutorial/eclipsecon2011/States")) {
+ EPackage.Registry.INSTANCE.put("http://ocl.eclipse.org/tutorial/eclipsecon2011/States", org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage.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("states", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("states", serviceProvider);
+
+
+
+
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parseTreeConstruction/StatesParsetreeConstructor.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parseTreeConstruction/StatesParsetreeConstructor.java
new file mode 100644
index 0000000..6e1b226
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parseTreeConstruction/StatesParsetreeConstructor.java
@@ -0,0 +1,1809 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.parseTreeConstruction;
+
+import org.eclipse.emf.ecore.*;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parsetree.reconstr.IEObjectConsumer;
+import org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess;
+
+import com.google.inject.Inject;
+
+@SuppressWarnings("all")
+public class StatesParsetreeConstructor extends AbstractParseTreeConstructor {
+
+ @Inject
+ private StatesGrammarAccess grammarAccess;
+
+ @Override
+ protected AbstractToken getRootToken(IEObjectConsumer inst) {
+ return new ThisRootNode(inst);
+ }
+
+protected class ThisRootNode extends RootToken {
+ public ThisRootNode(IEObjectConsumer inst) {
+ super(inst);
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Module_Group(this, this, 0, inst);
+ case 1: return new Statemachine_Group(this, this, 1, inst);
+ case 2: return new Event_NameAssignment(this, this, 2, inst);
+ case 3: return new State_Alternatives(this, this, 3, inst);
+ case 4: return new SimpleState_Group(this, this, 4, inst);
+ case 5: return new CompoundState_Group(this, this, 5, inst);
+ case 6: return new Transition_Group(this, this, 6, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ begin Rule Module ****************
+ *
+ * Module:
+ * "module" name=(STRING | ID) machines+=Statemachine*;
+ *
+ **/
+
+// "module" name=(STRING | ID) machines+=Statemachine*
+protected class Module_Group extends GroupToken {
+
+ public Module_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getModuleAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Module_MachinesAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Module_NameAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getModuleRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "module"
+protected class Module_ModuleKeyword_0 extends KeywordToken {
+
+ public Module_ModuleKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getModuleAccess().getModuleKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// name=(STRING | ID)
+protected class Module_NameAssignment_1 extends AssignmentToken {
+
+ public Module_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getModuleAccess().getNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Module_ModuleKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// machines+=Statemachine*
+protected class Module_MachinesAssignment_2 extends AssignmentToken {
+
+ public Module_MachinesAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getModuleAccess().getMachinesAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("machines",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("machines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStatemachineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Module_MachinesAssignment_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Module_NameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule Module ****************/
+
+
+/************ begin Rule Statemachine ****************
+ *
+ * Statemachine:
+ * initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}"
+ * ("debug" dbgName=ID)?;
+ *
+ **/
+
+// initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}"
+// ("debug" dbgName=ID)?
+protected class Statemachine_Group extends GroupToken {
+
+ public Statemachine_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_Group_10(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Statemachine_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStatemachineRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// initial?="initial"?
+protected class Statemachine_InitialAssignment_0 extends AssignmentToken {
+
+ public Statemachine_InitialAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getInitialAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("initial",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("initial");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "statemachine"
+protected class Statemachine_StatemachineKeyword_1 extends KeywordToken {
+
+ public Statemachine_StatemachineKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getStatemachineKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_InitialAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+}
+
+// name=ID
+protected class Statemachine_NameAssignment_2 extends AssignmentToken {
+
+ public Statemachine_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_StatemachineKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("value" value=INT)?
+protected class Statemachine_Group_3 extends GroupToken {
+
+ public Statemachine_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getGroup_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_ValueAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "value"
+protected class Statemachine_ValueKeyword_3_0 extends KeywordToken {
+
+ public Statemachine_ValueKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getValueKeyword_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=INT
+protected class Statemachine_ValueAssignment_3_1 extends AssignmentToken {
+
+ public Statemachine_ValueAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getValueAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_ValueKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// "{"
+protected class Statemachine_LeftCurlyBracketKeyword_4 extends KeywordToken {
+
+ public Statemachine_LeftCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_Group_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Statemachine_NameAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "events"
+protected class Statemachine_EventsKeyword_5 extends KeywordToken {
+
+ public Statemachine_EventsKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getEventsKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// events+=Event*
+protected class Statemachine_EventsAssignment_6 extends AssignmentToken {
+
+ public Statemachine_EventsAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getEventsAssignment_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Event_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("events",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("events");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getEventRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Statemachine_EventsAssignment_6(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Statemachine_EventsKeyword_5(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ";"
+protected class Statemachine_SemicolonKeyword_7 extends KeywordToken {
+
+ public Statemachine_SemicolonKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getSemicolonKeyword_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_EventsAssignment_6(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Statemachine_EventsKeyword_5(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// states+=State*
+protected class Statemachine_StatesAssignment_8 extends AssignmentToken {
+
+ public Statemachine_StatesAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getStatesAssignment_8();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new State_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("states",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("states");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStateRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Statemachine_StatesAssignment_8(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Statemachine_SemicolonKeyword_7(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "}"
+protected class Statemachine_RightCurlyBracketKeyword_9 extends KeywordToken {
+
+ public Statemachine_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_StatesAssignment_8(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Statemachine_SemicolonKeyword_7(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ("debug" dbgName=ID)?
+protected class Statemachine_Group_10 extends GroupToken {
+
+ public Statemachine_Group_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getGroup_10();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_DbgNameAssignment_10_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "debug"
+protected class Statemachine_DebugKeyword_10_0 extends KeywordToken {
+
+ public Statemachine_DebugKeyword_10_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getDebugKeyword_10_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dbgName=ID
+protected class Statemachine_DbgNameAssignment_10_1 extends AssignmentToken {
+
+ public Statemachine_DbgNameAssignment_10_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getDbgNameAssignment_10_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_DebugKeyword_10_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dbgName",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dbgName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStatemachineAccess().getDbgNameIDTerminalRuleCall_10_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getDbgNameIDTerminalRuleCall_10_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+/************ end Rule Statemachine ****************/
+
+
+/************ begin Rule Event ****************
+ *
+ * Event:
+ * name=ID;
+ *
+ **/
+
+// name=ID
+protected class Event_NameAssignment extends AssignmentToken {
+
+ public Event_NameAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getEventAccess().getNameAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getEventRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule Event ****************/
+
+
+/************ begin Rule State ****************
+ *
+ * State:
+ * SimpleState | CompoundState;
+ *
+ **/
+
+// SimpleState | CompoundState
+protected class State_Alternatives extends AlternativesToken {
+
+ public State_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getStateAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new State_SimpleStateParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new State_CompoundStateParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompoundStateRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSimpleStateRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// SimpleState
+protected class State_SimpleStateParserRuleCall_0 extends RuleCallToken {
+
+ public State_SimpleStateParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSimpleStateRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SimpleState_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// CompoundState
+protected class State_CompoundStateParserRuleCall_1 extends RuleCallToken {
+
+ public State_CompoundStateParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompoundStateRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(CompoundState_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule State ****************/
+
+
+/************ begin Rule SimpleState ****************
+ *
+ * SimpleState:
+ * initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}" ("debug" dbgName=ID)?;
+ *
+ **/
+
+// initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}" ("debug" dbgName=ID)?
+protected class SimpleState_Group extends GroupToken {
+
+ public SimpleState_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_Group_7(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SimpleState_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSimpleStateRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// initial?="initial"?
+protected class SimpleState_InitialAssignment_0 extends AssignmentToken {
+
+ public SimpleState_InitialAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getInitialAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("initial",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("initial");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "state"
+protected class SimpleState_StateKeyword_1 extends KeywordToken {
+
+ public SimpleState_StateKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getStateKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_InitialAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+}
+
+// name=ID
+protected class SimpleState_NameAssignment_2 extends AssignmentToken {
+
+ public SimpleState_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_StateKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("value" value=INT)?
+protected class SimpleState_Group_3 extends GroupToken {
+
+ public SimpleState_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getGroup_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_ValueAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "value"
+protected class SimpleState_ValueKeyword_3_0 extends KeywordToken {
+
+ public SimpleState_ValueKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getValueKeyword_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=INT
+protected class SimpleState_ValueAssignment_3_1 extends AssignmentToken {
+
+ public SimpleState_ValueAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getValueAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_ValueKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// "{"
+protected class SimpleState_LeftCurlyBracketKeyword_4 extends KeywordToken {
+
+ public SimpleState_LeftCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_Group_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SimpleState_NameAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// transitions+=Transition*
+protected class SimpleState_TransitionsAssignment_5 extends AssignmentToken {
+
+ public SimpleState_TransitionsAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("transitions",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("transitions");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTransitionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SimpleState_TransitionsAssignment_5(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new SimpleState_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "}"
+protected class SimpleState_RightCurlyBracketKeyword_6 extends KeywordToken {
+
+ public SimpleState_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_TransitionsAssignment_5(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SimpleState_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ("debug" dbgName=ID)?
+protected class SimpleState_Group_7 extends GroupToken {
+
+ public SimpleState_Group_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getGroup_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_DbgNameAssignment_7_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "debug"
+protected class SimpleState_DebugKeyword_7_0 extends KeywordToken {
+
+ public SimpleState_DebugKeyword_7_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getDebugKeyword_7_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dbgName=ID
+protected class SimpleState_DbgNameAssignment_7_1 extends AssignmentToken {
+
+ public SimpleState_DbgNameAssignment_7_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getDbgNameAssignment_7_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_DebugKeyword_7_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dbgName",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dbgName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSimpleStateAccess().getDbgNameIDTerminalRuleCall_7_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getSimpleStateAccess().getDbgNameIDTerminalRuleCall_7_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+/************ end Rule SimpleState ****************/
+
+
+/************ begin Rule CompoundState ****************
+ *
+ * CompoundState:
+ * "compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}"
+ * ("debug" dbgName=ID)?;
+ *
+ **/
+
+// "compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}"
+// ("debug" dbgName=ID)?
+protected class CompoundState_Group extends GroupToken {
+
+ public CompoundState_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_Group_9(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompoundState_RightCurlyBracketKeyword_8(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompoundStateRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "compound"
+protected class CompoundState_CompoundKeyword_0 extends KeywordToken {
+
+ public CompoundState_CompoundKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getCompoundKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// initial?="initial"?
+protected class CompoundState_InitialAssignment_1 extends AssignmentToken {
+
+ public CompoundState_InitialAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getInitialAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_CompoundKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("initial",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("initial");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "state"
+protected class CompoundState_StateKeyword_2 extends KeywordToken {
+
+ public CompoundState_StateKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getStateKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_InitialAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompoundState_CompoundKeyword_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=ID
+protected class CompoundState_NameAssignment_3 extends AssignmentToken {
+
+ public CompoundState_NameAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getNameAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_StateKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "machine"
+protected class CompoundState_MachineKeyword_4 extends KeywordToken {
+
+ public CompoundState_MachineKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getMachineKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_NameAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// machine=[Statemachine]
+protected class CompoundState_MachineAssignment_5 extends AssignmentToken {
+
+ public CompoundState_MachineAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getMachineAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_MachineKeyword_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("machine",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("machine");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0().getType().getClassifier())) {
+ type = AssignmentType.CROSS_REFERENCE;
+ element = grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+// "{"
+protected class CompoundState_LeftCurlyBracketKeyword_6 extends KeywordToken {
+
+ public CompoundState_LeftCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_MachineAssignment_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// transitions+=Transition*
+protected class CompoundState_TransitionsAssignment_7 extends AssignmentToken {
+
+ public CompoundState_TransitionsAssignment_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("transitions",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("transitions");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTransitionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CompoundState_TransitionsAssignment_7(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new CompoundState_LeftCurlyBracketKeyword_6(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "}"
+protected class CompoundState_RightCurlyBracketKeyword_8 extends KeywordToken {
+
+ public CompoundState_RightCurlyBracketKeyword_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_TransitionsAssignment_7(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompoundState_LeftCurlyBracketKeyword_6(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ("debug" dbgName=ID)?
+protected class CompoundState_Group_9 extends GroupToken {
+
+ public CompoundState_Group_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getGroup_9();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_DbgNameAssignment_9_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "debug"
+protected class CompoundState_DebugKeyword_9_0 extends KeywordToken {
+
+ public CompoundState_DebugKeyword_9_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getDebugKeyword_9_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_RightCurlyBracketKeyword_8(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dbgName=ID
+protected class CompoundState_DbgNameAssignment_9_1 extends AssignmentToken {
+
+ public CompoundState_DbgNameAssignment_9_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getDbgNameAssignment_9_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_DebugKeyword_9_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dbgName",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dbgName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCompoundStateAccess().getDbgNameIDTerminalRuleCall_9_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCompoundStateAccess().getDbgNameIDTerminalRuleCall_9_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+/************ end Rule CompoundState ****************/
+
+
+/************ begin Rule Transition ****************
+ *
+ * Transition:
+ * event=[Event] "=>" state=[State] ("debug" dbgName=ID)?;
+ *
+ **/
+
+// event=[Event] "=>" state=[State] ("debug" dbgName=ID)?
+protected class Transition_Group extends GroupToken {
+
+ public Transition_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_Group_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Transition_StateAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getTransitionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// event=[Event]
+protected class Transition_EventAssignment_0 extends AssignmentToken {
+
+ public Transition_EventAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getEventAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("event",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("event");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0().getType().getClassifier())) {
+ type = AssignmentType.CROSS_REFERENCE;
+ element = grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+// "=>"
+protected class Transition_EqualsSignGreaterThanSignKeyword_1 extends KeywordToken {
+
+ public Transition_EqualsSignGreaterThanSignKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_EventAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// state=[State]
+protected class Transition_StateAssignment_2 extends AssignmentToken {
+
+ public Transition_StateAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getStateAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_EqualsSignGreaterThanSignKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("state",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("state");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0().getType().getClassifier())) {
+ type = AssignmentType.CROSS_REFERENCE;
+ element = grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+// ("debug" dbgName=ID)?
+protected class Transition_Group_3 extends GroupToken {
+
+ public Transition_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getGroup_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_DbgNameAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "debug"
+protected class Transition_DebugKeyword_3_0 extends KeywordToken {
+
+ public Transition_DebugKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getDebugKeyword_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_StateAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dbgName=ID
+protected class Transition_DbgNameAssignment_3_1 extends AssignmentToken {
+
+ public Transition_DbgNameAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getDbgNameAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_DebugKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dbgName",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dbgName");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getTransitionAccess().getDbgNameIDTerminalRuleCall_3_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getTransitionAccess().getDbgNameIDTerminalRuleCall_3_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+/************ end Rule Transition ****************/
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/StatesAntlrTokenFileProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/StatesAntlrTokenFileProvider.java
new file mode 100644
index 0000000..57162c5
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/StatesAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class StatesAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.tokens");
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/StatesParser.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/StatesParser.java
new file mode 100644
index 0000000..a714f45
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/StatesParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess;
+
+public class StatesParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private StatesGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalStatesParser createParser(XtextTokenStream stream) {
+ return new org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalStatesParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Module";
+ }
+
+ public StatesGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(StatesGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g
new file mode 100644
index 0000000..76eba67
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g
@@ -0,0 +1,720 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStates;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.ocl.tutorial.eclipsecon2011.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.ocl.tutorial.eclipsecon2011.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.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess;
+
+}
+
+@parser::members {
+
+ private StatesGrammarAccess grammarAccess;
+
+ public InternalStatesParser(TokenStream input, StatesGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Module";
+ }
+
+ @Override
+ protected StatesGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleModule
+entryRuleModule returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getModuleRule()); }
+ iv_ruleModule=ruleModule
+ { $current=$iv_ruleModule.current; }
+ EOF
+;
+
+// Rule Module
+ruleModule returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='module'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getModuleAccess().getModuleKeyword_0());
+ }
+(
+(
+(
+ lv_name_1_1=RULE_STRING
+ {
+ newLeafNode(lv_name_1_1, grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getModuleRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_1_1,
+ "STRING");
+ }
+
+ | lv_name_1_2=RULE_ID
+ {
+ newLeafNode(lv_name_1_2, grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getModuleRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_1_2,
+ "ID");
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0());
+ }
+ lv_machines_2_0=ruleStatemachine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ add(
+ $current,
+ "machines",
+ lv_machines_2_0,
+ "Statemachine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*)
+;
+
+
+
+
+
+// Entry rule entryRuleStatemachine
+entryRuleStatemachine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStatemachineRule()); }
+ iv_ruleStatemachine=ruleStatemachine
+ { $current=$iv_ruleStatemachine.current; }
+ EOF
+;
+
+// Rule Statemachine
+ruleStatemachine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_initial_0_0= 'initial'
+ {
+ newLeafNode(lv_initial_0_0, grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed($current, "initial", true, "initial");
+ }
+
+)
+)? otherlv_1='statemachine'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getStatemachineAccess().getStatemachineKeyword_1());
+ }
+(
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+)( otherlv_3='value'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getStatemachineAccess().getValueKeyword_3_0());
+ }
+(
+(
+ lv_value_4_0=RULE_INT
+ {
+ newLeafNode(lv_value_4_0, grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "value",
+ lv_value_4_0,
+ "INT");
+ }
+
+)
+))? otherlv_5='{'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4());
+ }
+ otherlv_6='events'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getStatemachineAccess().getEventsKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0());
+ }
+ lv_events_7_0=ruleEvent {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ $current,
+ "events",
+ lv_events_7_0,
+ "Event");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_8=';'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getStatemachineAccess().getSemicolonKeyword_7());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0());
+ }
+ lv_states_9_0=ruleState {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ $current,
+ "states",
+ lv_states_9_0,
+ "State");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_10='}'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9());
+ }
+( otherlv_11='debug'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getStatemachineAccess().getDebugKeyword_10_0());
+ }
+(
+(
+ lv_dbgName_12_0=RULE_ID
+ {
+ newLeafNode(lv_dbgName_12_0, grammarAccess.getStatemachineAccess().getDbgNameIDTerminalRuleCall_10_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dbgName",
+ lv_dbgName_12_0,
+ "ID");
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getEventRule()); }
+ iv_ruleEvent=ruleEvent
+ { $current=$iv_ruleEvent.current; }
+ EOF
+;
+
+// Rule Event
+ruleEvent returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_name_0_0=RULE_ID
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getEventRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleState
+entryRuleState returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStateRule()); }
+ iv_ruleState=ruleState
+ { $current=$iv_ruleState.current; }
+ EOF
+;
+
+// Rule State
+ruleState returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0());
+ }
+ this_SimpleState_0=ruleSimpleState
+ {
+ $current = $this_SimpleState_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1());
+ }
+ this_CompoundState_1=ruleCompoundState
+ {
+ $current = $this_CompoundState_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSimpleState
+entryRuleSimpleState returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSimpleStateRule()); }
+ iv_ruleSimpleState=ruleSimpleState
+ { $current=$iv_ruleSimpleState.current; }
+ EOF
+;
+
+// Rule SimpleState
+ruleSimpleState returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_initial_0_0= 'initial'
+ {
+ newLeafNode(lv_initial_0_0, grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed($current, "initial", true, "initial");
+ }
+
+)
+)? otherlv_1='state'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSimpleStateAccess().getStateKeyword_1());
+ }
+(
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+)( otherlv_3='value'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSimpleStateAccess().getValueKeyword_3_0());
+ }
+(
+(
+ lv_value_4_0=RULE_INT
+ {
+ newLeafNode(lv_value_4_0, grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "value",
+ lv_value_4_0,
+ "INT");
+ }
+
+)
+))? otherlv_5='{'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0());
+ }
+ lv_transitions_6_0=ruleTransition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSimpleStateRule());
+ }
+ add(
+ $current,
+ "transitions",
+ lv_transitions_6_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6());
+ }
+( otherlv_8='debug'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getSimpleStateAccess().getDebugKeyword_7_0());
+ }
+(
+(
+ lv_dbgName_9_0=RULE_ID
+ {
+ newLeafNode(lv_dbgName_9_0, grammarAccess.getSimpleStateAccess().getDbgNameIDTerminalRuleCall_7_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dbgName",
+ lv_dbgName_9_0,
+ "ID");
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleCompoundState
+entryRuleCompoundState returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCompoundStateRule()); }
+ iv_ruleCompoundState=ruleCompoundState
+ { $current=$iv_ruleCompoundState.current; }
+ EOF
+;
+
+// Rule CompoundState
+ruleCompoundState returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='compound'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getCompoundStateAccess().getCompoundKeyword_0());
+ }
+(
+(
+ lv_initial_1_0= 'initial'
+ {
+ newLeafNode(lv_initial_1_0, grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed($current, "initial", true, "initial");
+ }
+
+)
+)? otherlv_2='state'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getCompoundStateAccess().getStateKeyword_2());
+ }
+(
+(
+ lv_name_3_0=RULE_ID
+ {
+ newLeafNode(lv_name_3_0, grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_3_0,
+ "ID");
+ }
+
+)
+) otherlv_4='machine'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getCompoundStateAccess().getMachineKeyword_4());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ }
+ otherlv_5=RULE_ID
+ {
+ newLeafNode(otherlv_5, grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0());
+ }
+
+)
+) otherlv_6='{'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0());
+ }
+ lv_transitions_7_0=ruleTransition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompoundStateRule());
+ }
+ add(
+ $current,
+ "transitions",
+ lv_transitions_7_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_8='}'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8());
+ }
+( otherlv_9='debug'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getCompoundStateAccess().getDebugKeyword_9_0());
+ }
+(
+(
+ lv_dbgName_10_0=RULE_ID
+ {
+ newLeafNode(lv_dbgName_10_0, grammarAccess.getCompoundStateAccess().getDbgNameIDTerminalRuleCall_9_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dbgName",
+ lv_dbgName_10_0,
+ "ID");
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleTransition
+entryRuleTransition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTransitionRule()); }
+ iv_ruleTransition=ruleTransition
+ { $current=$iv_ruleTransition.current; }
+ EOF
+;
+
+// Rule Transition
+ruleTransition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTransitionRule());
+ }
+ }
+ otherlv_0=RULE_ID
+ {
+ newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+ }
+
+)
+) otherlv_1='=>'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTransitionRule());
+ }
+ }
+ otherlv_2=RULE_ID
+ {
+ newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+ }
+
+)
+)( otherlv_3='debug'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getTransitionAccess().getDebugKeyword_3_0());
+ }
+(
+(
+ lv_dbgName_4_0=RULE_ID
+ {
+ newLeafNode(lv_dbgName_4_0, grammarAccess.getTransitionAccess().getDbgNameIDTerminalRuleCall_3_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTransitionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dbgName",
+ lv_dbgName_4_0,
+ "ID");
+ }
+
+)
+))?)
+;
+
+
+
+
+
+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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.tokens b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.tokens
new file mode 100644
index 0000000..daaf659
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.tokens
@@ -0,0 +1,33 @@
+RULE_ML_COMMENT=7
+T__12=12
+RULE_ID=5
+T__23=23
+T__20=20
+T__13=13
+RULE_STRING=4
+T__21=21
+T__19=19
+T__14=14
+T__11=11
+T__22=22
+RULE_WS=9
+T__17=17
+RULE_INT=6
+T__16=16
+RULE_ANY_OTHER=10
+RULE_SL_COMMENT=8
+T__18=18
+T__15=15
+'statemachine'=13
+'compound'=21
+'events'=16
+'debug'=19
+'=>'=23
+'machine'=22
+'{'=15
+';'=17
+'module'=11
+'initial'=12
+'value'=14
+'state'=20
+'}'=18
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStatesLexer.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStatesLexer.java
new file mode 100644
index 0000000..bff41c0
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStatesLexer.java
@@ -0,0 +1,1219 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.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 InternalStatesLexer extends Lexer {
+ public static final int RULE_ML_COMMENT=7;
+ public static final int RULE_ID=5;
+ public static final int T__12=12;
+ public static final int T__23=23;
+ public static final int T__20=20;
+ public static final int T__13=13;
+ public static final int RULE_STRING=4;
+ public static final int T__21=21;
+ public static final int T__19=19;
+ public static final int T__14=14;
+ public static final int T__11=11;
+ public static final int T__22=22;
+ public static final int RULE_WS=9;
+ public static final int T__17=17;
+ public static final int EOF=-1;
+ public static final int RULE_INT=6;
+ public static final int T__16=16;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__18=18;
+ public static final int T__15=15;
+
+ // delegates
+ // delegators
+
+ public InternalStatesLexer() {;}
+ public InternalStatesLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalStatesLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:11:7: ( 'module' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:11:9: 'module'
+ {
+ match("module");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:12:7: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:12:9: 'initial'
+ {
+ match("initial");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:13:7: ( 'statemachine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:13:9: 'statemachine'
+ {
+ match("statemachine");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:14:7: ( 'value' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:14:9: 'value'
+ {
+ match("value");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:15:7: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:15:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:16:7: ( 'events' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:16:9: 'events'
+ {
+ match("events");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:17:7: ( ';' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:17:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:18:7: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:19:7: ( 'debug' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:19:9: 'debug'
+ {
+ match("debug");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:20:7: ( 'state' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:20:9: 'state'
+ {
+ match("state");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:21:7: ( 'compound' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:21:9: 'compound'
+ {
+ match("compound");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:22:7: ( 'machine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:22:9: 'machine'
+ {
+ match("machine");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:23:7: ( '=>' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:23:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ 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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:706:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:706:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:706:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:706: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:706: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:708:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:708:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:708: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:708: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:710: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:712:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:712:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:712: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:712: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:714:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:714:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:714: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:714: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:714: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:714:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:714:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:714: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:716:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:716:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:716: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:718:16: ( . )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:718:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:70: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:76: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:82: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:88: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:96: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:105: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:117: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:133: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:149: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:1:157: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\4\26\1\uffff\1\26\2\uffff\2\26\2\23\2\uffff\3\23\2\uffff"+
+ "\2\26\1\uffff\3\26\1\uffff\1\26\2\uffff\2\26\6\uffff\23\26\1\102"+
+ "\1\103\1\26\1\105\1\26\1\107\3\26\2\uffff\1\113\1\uffff\1\26\1\uffff"+
+ "\1\115\1\116\1\26\1\uffff\1\26\2\uffff\1\26\1\122\1\26\1\uffff\2"+
+ "\26\1\126\1\uffff";
+ static final String DFA12_eofS =
+ "\127\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\141\1\156\1\164\1\141\1\uffff\1\166\2\uffff\1\145\1\157"+
+ "\1\76\1\101\2\uffff\2\0\1\52\2\uffff\1\144\1\143\1\uffff\1\151\1"+
+ "\141\1\154\1\uffff\1\145\2\uffff\1\142\1\155\6\uffff\1\165\1\150"+
+ "\2\164\1\165\1\156\1\165\1\160\1\154\2\151\2\145\1\164\1\147\1\157"+
+ "\1\145\1\156\1\141\2\60\1\163\1\60\1\165\1\60\1\145\1\154\1\141"+
+ "\2\uffff\1\60\1\uffff\1\156\1\uffff\2\60\1\143\1\uffff\1\144\2\uffff"+
+ "\1\150\1\60\1\151\1\uffff\1\156\1\145\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\157\1\156\1\164\1\141\1\uffff\1\166\2\uffff\1\145\1"+
+ "\157\1\76\1\172\2\uffff\2\uffff\1\57\2\uffff\1\144\1\143\1\uffff"+
+ "\1\151\1\141\1\154\1\uffff\1\145\2\uffff\1\142\1\155\6\uffff\1\165"+
+ "\1\150\2\164\1\165\1\156\1\165\1\160\1\154\2\151\2\145\1\164\1\147"+
+ "\1\157\1\145\1\156\1\141\2\172\1\163\1\172\1\165\1\172\1\145\1\154"+
+ "\1\141\2\uffff\1\172\1\uffff\1\156\1\uffff\2\172\1\143\1\uffff\1"+
+ "\144\2\uffff\1\150\1\172\1\151\1\uffff\1\156\1\145\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\5\uffff\1\5\1\uffff\1\7\1\10\4\uffff\1\16\1\17\3\uffff\1\23\1"+
+ "\24\2\uffff\1\16\3\uffff\1\5\1\uffff\1\7\1\10\2\uffff\1\15\1\17"+
+ "\1\20\1\21\1\22\1\23\34\uffff\1\12\1\4\1\uffff\1\11\1\uffff\1\1"+
+ "\3\uffff\1\6\1\uffff\1\14\1\2\3\uffff\1\13\3\uffff\1\3";
+ static final String DFA12_specialS =
+ "\1\2\16\uffff\1\0\1\1\106\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\23\2\22\2\23\1\22\22\23\1\22\1\23\1\17\4\23\1\20\7\23\1"+
+ "\21\12\16\1\23\1\7\1\23\1\13\3\23\32\15\3\23\1\14\1\15\1\23"+
+ "\2\15\1\12\1\11\1\6\3\15\1\2\3\15\1\1\5\15\1\3\2\15\1\4\4\15"+
+ "\1\5\1\23\1\10\uff82\23",
+ "\1\25\15\uffff\1\24",
+ "\1\27",
+ "\1\30",
+ "\1\31",
+ "",
+ "\1\33",
+ "",
+ "",
+ "\1\36",
+ "\1\37",
+ "\1\40",
+ "\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "",
+ "\0\42",
+ "\0\42",
+ "\1\43\4\uffff\1\44",
+ "",
+ "",
+ "\1\46",
+ "\1\47",
+ "",
+ "\1\50",
+ "\1\51",
+ "\1\52",
+ "",
+ "\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",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\14\26\1\101\15\26",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\1\104",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\1\106",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\1\110",
+ "\1\111",
+ "\1\112",
+ "",
+ "",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "",
+ "\1\114",
+ "",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\1\117",
+ "",
+ "\1\120",
+ "",
+ "",
+ "\1\121",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ "\1\123",
+ "",
+ "\1\124",
+ "\1\125",
+ "\12\26\7\uffff\32\26\4\uffff\1\26\1\uffff\32\26",
+ ""
+ };
+
+ 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_15 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_15>='\u0000' && LA12_15<='\uFFFF')) ) {s = 34;}
+
+ else s = 19;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_16 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_16>='\u0000' && LA12_16<='\uFFFF')) ) {s = 34;}
+
+ else s = 19;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='m') ) {s = 1;}
+
+ else if ( (LA12_0=='i') ) {s = 2;}
+
+ else if ( (LA12_0=='s') ) {s = 3;}
+
+ else if ( (LA12_0=='v') ) {s = 4;}
+
+ else if ( (LA12_0=='{') ) {s = 5;}
+
+ else if ( (LA12_0=='e') ) {s = 6;}
+
+ else if ( (LA12_0==';') ) {s = 7;}
+
+ else if ( (LA12_0=='}') ) {s = 8;}
+
+ else if ( (LA12_0=='d') ) {s = 9;}
+
+ else if ( (LA12_0=='c') ) {s = 10;}
+
+ else if ( (LA12_0=='=') ) {s = 11;}
+
+ else if ( (LA12_0=='^') ) {s = 12;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='b')||(LA12_0>='f' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='l')||(LA12_0>='n' && LA12_0<='r')||(LA12_0>='t' && LA12_0<='u')||(LA12_0>='w' && LA12_0<='z')) ) {s = 13;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 14;}
+
+ else if ( (LA12_0=='\"') ) {s = 15;}
+
+ else if ( (LA12_0=='\'') ) {s = 16;}
+
+ else if ( (LA12_0=='/') ) {s = 17;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 18;}
+
+ else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='.')||LA12_0==':'||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 19;}
+
+ 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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStatesParser.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStatesParser.java
new file mode 100644
index 0000000..62cfad4
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStatesParser.java
@@ -0,0 +1,1670 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.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.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStatesParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'module'", "'initial'", "'statemachine'", "'value'", "'{'", "'events'", "';'", "'}'", "'debug'", "'state'", "'compound'", "'machine'", "'=>'"
+ };
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__12=12;
+ public static final int RULE_ID=5;
+ public static final int T__23=23;
+ public static final int T__20=20;
+ public static final int T__13=13;
+ public static final int RULE_STRING=4;
+ public static final int T__21=21;
+ public static final int T__19=19;
+ public static final int T__14=14;
+ public static final int T__11=11;
+ public static final int T__22=22;
+ public static final int RULE_WS=9;
+ public static final int T__17=17;
+ public static final int EOF=-1;
+ public static final int RULE_INT=6;
+ public static final int T__16=16;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__18=18;
+ public static final int T__15=15;
+
+ // delegates
+ // delegators
+
+
+ public InternalStatesParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalStatesParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalStatesParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g"; }
+
+
+
+ private StatesGrammarAccess grammarAccess;
+
+ public InternalStatesParser(TokenStream input, StatesGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Module";
+ }
+
+ @Override
+ protected StatesGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRuleModule"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:67:1: entryRuleModule returns [EObject current=null] : iv_ruleModule= ruleModule EOF ;
+ public final EObject entryRuleModule() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleModule = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:68:2: (iv_ruleModule= ruleModule EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:69:2: iv_ruleModule= ruleModule EOF
+ {
+ newCompositeNode(grammarAccess.getModuleRule());
+ pushFollow(FOLLOW_ruleModule_in_entryRuleModule75);
+ iv_ruleModule=ruleModule();
+
+ state._fsp--;
+
+ current =iv_ruleModule;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModule85);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleModule"
+
+
+ // $ANTLR start "ruleModule"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:76:1: ruleModule returns [EObject current=null] : (otherlv_0= 'module' ( ( (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID ) ) ) ( (lv_machines_2_0= ruleStatemachine ) )* ) ;
+ public final EObject ruleModule() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_name_1_1=null;
+ Token lv_name_1_2=null;
+ EObject lv_machines_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:79:28: ( (otherlv_0= 'module' ( ( (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID ) ) ) ( (lv_machines_2_0= ruleStatemachine ) )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:80:1: (otherlv_0= 'module' ( ( (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID ) ) ) ( (lv_machines_2_0= ruleStatemachine ) )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:80:1: (otherlv_0= 'module' ( ( (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID ) ) ) ( (lv_machines_2_0= ruleStatemachine ) )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:80:3: otherlv_0= 'module' ( ( (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID ) ) ) ( (lv_machines_2_0= ruleStatemachine ) )*
+ {
+ otherlv_0=(Token)match(input,11,FOLLOW_11_in_ruleModule122);
+
+ newLeafNode(otherlv_0, grammarAccess.getModuleAccess().getModuleKeyword_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:84:1: ( ( (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:85:1: ( (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:85:1: ( (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:86:1: (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:86:1: (lv_name_1_1= RULE_STRING | lv_name_1_2= RULE_ID )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==RULE_STRING) ) {
+ alt1=1;
+ }
+ else if ( (LA1_0==RULE_ID) ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:87:3: lv_name_1_1= RULE_STRING
+ {
+ lv_name_1_1=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleModule141);
+
+ newLeafNode(lv_name_1_1, grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getModuleRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_1_1,
+ "STRING");
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:102:8: lv_name_1_2= RULE_ID
+ {
+ lv_name_1_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleModule161);
+
+ newLeafNode(lv_name_1_2, grammarAccess.getModuleAccess().getNameIDTerminalRuleCall_1_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getModuleRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_1_2,
+ "ID");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:120:2: ( (lv_machines_2_0= ruleStatemachine ) )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>=12 && LA2_0<=13)) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:121:1: (lv_machines_2_0= ruleStatemachine )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:121:1: (lv_machines_2_0= ruleStatemachine )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:122:3: lv_machines_2_0= ruleStatemachine
+ {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleStatemachine_in_ruleModule190);
+ lv_machines_2_0=ruleStatemachine();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ add(
+ current,
+ "machines",
+ lv_machines_2_0,
+ "Statemachine");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleModule"
+
+
+ // $ANTLR start "entryRuleStatemachine"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:146:1: entryRuleStatemachine returns [EObject current=null] : iv_ruleStatemachine= ruleStatemachine EOF ;
+ public final EObject entryRuleStatemachine() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleStatemachine = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:147:2: (iv_ruleStatemachine= ruleStatemachine EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:148:2: iv_ruleStatemachine= ruleStatemachine EOF
+ {
+ newCompositeNode(grammarAccess.getStatemachineRule());
+ pushFollow(FOLLOW_ruleStatemachine_in_entryRuleStatemachine227);
+ iv_ruleStatemachine=ruleStatemachine();
+
+ state._fsp--;
+
+ current =iv_ruleStatemachine;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStatemachine237);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStatemachine"
+
+
+ // $ANTLR start "ruleStatemachine"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:155:1: ruleStatemachine returns [EObject current=null] : ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' (otherlv_11= 'debug' ( (lv_dbgName_12_0= RULE_ID ) ) )? ) ;
+ public final EObject ruleStatemachine() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_initial_0_0=null;
+ Token otherlv_1=null;
+ Token lv_name_2_0=null;
+ Token otherlv_3=null;
+ Token lv_value_4_0=null;
+ Token otherlv_5=null;
+ Token otherlv_6=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ Token otherlv_11=null;
+ Token lv_dbgName_12_0=null;
+ EObject lv_events_7_0 = null;
+
+ EObject lv_states_9_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:158:28: ( ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' (otherlv_11= 'debug' ( (lv_dbgName_12_0= RULE_ID ) ) )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:159:1: ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' (otherlv_11= 'debug' ( (lv_dbgName_12_0= RULE_ID ) ) )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:159:1: ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' (otherlv_11= 'debug' ( (lv_dbgName_12_0= RULE_ID ) ) )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:159:2: ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' (otherlv_11= 'debug' ( (lv_dbgName_12_0= RULE_ID ) ) )?
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:159:2: ( (lv_initial_0_0= 'initial' ) )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==12) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:160:1: (lv_initial_0_0= 'initial' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:160:1: (lv_initial_0_0= 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:161:3: lv_initial_0_0= 'initial'
+ {
+ lv_initial_0_0=(Token)match(input,12,FOLLOW_12_in_ruleStatemachine280);
+
+ newLeafNode(lv_initial_0_0, grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(current, "initial", true, "initial");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_1=(Token)match(input,13,FOLLOW_13_in_ruleStatemachine306);
+
+ newLeafNode(otherlv_1, grammarAccess.getStatemachineAccess().getStatemachineKeyword_1());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:178:1: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:179:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:179:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:180:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStatemachine323);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:196:2: (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==14) ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:196:4: otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) )
+ {
+ otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleStatemachine341);
+
+ newLeafNode(otherlv_3, grammarAccess.getStatemachineAccess().getValueKeyword_3_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:200:1: ( (lv_value_4_0= RULE_INT ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:201:1: (lv_value_4_0= RULE_INT )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:201:1: (lv_value_4_0= RULE_INT )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:202:3: lv_value_4_0= RULE_INT
+ {
+ lv_value_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleStatemachine358);
+
+ newLeafNode(lv_value_4_0, grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ current,
+ "value",
+ lv_value_4_0,
+ "INT");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleStatemachine377);
+
+ newLeafNode(otherlv_5, grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4());
+
+ otherlv_6=(Token)match(input,16,FOLLOW_16_in_ruleStatemachine389);
+
+ newLeafNode(otherlv_6, grammarAccess.getStatemachineAccess().getEventsKeyword_5());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:226:1: ( (lv_events_7_0= ruleEvent ) )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_ID) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:227:1: (lv_events_7_0= ruleEvent )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:227:1: (lv_events_7_0= ruleEvent )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:228:3: lv_events_7_0= ruleEvent
+ {
+
+ newCompositeNode(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleEvent_in_ruleStatemachine410);
+ lv_events_7_0=ruleEvent();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ current,
+ "events",
+ lv_events_7_0,
+ "Event");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ otherlv_8=(Token)match(input,17,FOLLOW_17_in_ruleStatemachine423);
+
+ newLeafNode(otherlv_8, grammarAccess.getStatemachineAccess().getSemicolonKeyword_7());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:248:1: ( (lv_states_9_0= ruleState ) )*
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==12||(LA6_0>=20 && LA6_0<=21)) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:249:1: (lv_states_9_0= ruleState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:249:1: (lv_states_9_0= ruleState )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:250:3: lv_states_9_0= ruleState
+ {
+
+ newCompositeNode(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0());
+
+ pushFollow(FOLLOW_ruleState_in_ruleStatemachine444);
+ lv_states_9_0=ruleState();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ current,
+ "states",
+ lv_states_9_0,
+ "State");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+ otherlv_10=(Token)match(input,18,FOLLOW_18_in_ruleStatemachine457);
+
+ newLeafNode(otherlv_10, grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:270:1: (otherlv_11= 'debug' ( (lv_dbgName_12_0= RULE_ID ) ) )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==19) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:270:3: otherlv_11= 'debug' ( (lv_dbgName_12_0= RULE_ID ) )
+ {
+ otherlv_11=(Token)match(input,19,FOLLOW_19_in_ruleStatemachine470);
+
+ newLeafNode(otherlv_11, grammarAccess.getStatemachineAccess().getDebugKeyword_10_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:274:1: ( (lv_dbgName_12_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:275:1: (lv_dbgName_12_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:275:1: (lv_dbgName_12_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:276:3: lv_dbgName_12_0= RULE_ID
+ {
+ lv_dbgName_12_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStatemachine487);
+
+ newLeafNode(lv_dbgName_12_0, grammarAccess.getStatemachineAccess().getDbgNameIDTerminalRuleCall_10_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ current,
+ "dbgName",
+ lv_dbgName_12_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStatemachine"
+
+
+ // $ANTLR start "entryRuleEvent"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:300:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ;
+ public final EObject entryRuleEvent() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleEvent = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:301:2: (iv_ruleEvent= ruleEvent EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:302:2: iv_ruleEvent= ruleEvent EOF
+ {
+ newCompositeNode(grammarAccess.getEventRule());
+ pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent530);
+ iv_ruleEvent=ruleEvent();
+
+ state._fsp--;
+
+ current =iv_ruleEvent;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEvent540);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEvent"
+
+
+ // $ANTLR start "ruleEvent"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:309:1: ruleEvent returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ;
+ public final EObject ruleEvent() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:312:28: ( ( (lv_name_0_0= RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:313:1: ( (lv_name_0_0= RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:313:1: ( (lv_name_0_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:314:1: (lv_name_0_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:314:1: (lv_name_0_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:315:3: lv_name_0_0= RULE_ID
+ {
+ lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEvent581);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getEventRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEvent"
+
+
+ // $ANTLR start "entryRuleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:339: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.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:340:2: (iv_ruleState= ruleState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:341:2: iv_ruleState= ruleState EOF
+ {
+ newCompositeNode(grammarAccess.getStateRule());
+ pushFollow(FOLLOW_ruleState_in_entryRuleState621);
+ iv_ruleState=ruleState();
+
+ state._fsp--;
+
+ current =iv_ruleState;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleState631);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleState"
+
+
+ // $ANTLR start "ruleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:348:1: ruleState returns [EObject current=null] : (this_SimpleState_0= ruleSimpleState | this_CompoundState_1= ruleCompoundState ) ;
+ public final EObject ruleState() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_SimpleState_0 = null;
+
+ EObject this_CompoundState_1 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:351:28: ( (this_SimpleState_0= ruleSimpleState | this_CompoundState_1= ruleCompoundState ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:352:1: (this_SimpleState_0= ruleSimpleState | this_CompoundState_1= ruleCompoundState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:352:1: (this_SimpleState_0= ruleSimpleState | this_CompoundState_1= ruleCompoundState )
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==12||LA8_0==20) ) {
+ alt8=1;
+ }
+ else if ( (LA8_0==21) ) {
+ alt8=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+
+ throw nvae;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:353:5: this_SimpleState_0= ruleSimpleState
+ {
+
+ newCompositeNode(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleSimpleState_in_ruleState678);
+ this_SimpleState_0=ruleSimpleState();
+
+ state._fsp--;
+
+
+ current = this_SimpleState_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:363:5: this_CompoundState_1= ruleCompoundState
+ {
+
+ newCompositeNode(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleCompoundState_in_ruleState705);
+ this_CompoundState_1=ruleCompoundState();
+
+ state._fsp--;
+
+
+ current = this_CompoundState_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleState"
+
+
+ // $ANTLR start "entryRuleSimpleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:379:1: entryRuleSimpleState returns [EObject current=null] : iv_ruleSimpleState= ruleSimpleState EOF ;
+ public final EObject entryRuleSimpleState() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSimpleState = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:380:2: (iv_ruleSimpleState= ruleSimpleState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:381:2: iv_ruleSimpleState= ruleSimpleState EOF
+ {
+ newCompositeNode(grammarAccess.getSimpleStateRule());
+ pushFollow(FOLLOW_ruleSimpleState_in_entryRuleSimpleState740);
+ iv_ruleSimpleState=ruleSimpleState();
+
+ state._fsp--;
+
+ current =iv_ruleSimpleState;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleState750);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSimpleState"
+
+
+ // $ANTLR start "ruleSimpleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:388:1: ruleSimpleState returns [EObject current=null] : ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' (otherlv_8= 'debug' ( (lv_dbgName_9_0= RULE_ID ) ) )? ) ;
+ public final EObject ruleSimpleState() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_initial_0_0=null;
+ Token otherlv_1=null;
+ Token lv_name_2_0=null;
+ Token otherlv_3=null;
+ Token lv_value_4_0=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token lv_dbgName_9_0=null;
+ EObject lv_transitions_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:391:28: ( ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' (otherlv_8= 'debug' ( (lv_dbgName_9_0= RULE_ID ) ) )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:392:1: ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' (otherlv_8= 'debug' ( (lv_dbgName_9_0= RULE_ID ) ) )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:392:1: ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' (otherlv_8= 'debug' ( (lv_dbgName_9_0= RULE_ID ) ) )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:392:2: ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' (otherlv_8= 'debug' ( (lv_dbgName_9_0= RULE_ID ) ) )?
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:392:2: ( (lv_initial_0_0= 'initial' ) )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==12) ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:393:1: (lv_initial_0_0= 'initial' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:393:1: (lv_initial_0_0= 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:394:3: lv_initial_0_0= 'initial'
+ {
+ lv_initial_0_0=(Token)match(input,12,FOLLOW_12_in_ruleSimpleState793);
+
+ newLeafNode(lv_initial_0_0, grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(current, "initial", true, "initial");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_1=(Token)match(input,20,FOLLOW_20_in_ruleSimpleState819);
+
+ newLeafNode(otherlv_1, grammarAccess.getSimpleStateAccess().getStateKeyword_1());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:411:1: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:412:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:412:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:413:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleState836);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:429:2: (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==14) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:429:4: otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) )
+ {
+ otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleSimpleState854);
+
+ newLeafNode(otherlv_3, grammarAccess.getSimpleStateAccess().getValueKeyword_3_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:433:1: ( (lv_value_4_0= RULE_INT ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:434:1: (lv_value_4_0= RULE_INT )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:434:1: (lv_value_4_0= RULE_INT )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:435:3: lv_value_4_0= RULE_INT
+ {
+ lv_value_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSimpleState871);
+
+ newLeafNode(lv_value_4_0, grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "value",
+ lv_value_4_0,
+ "INT");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleSimpleState890);
+
+ newLeafNode(otherlv_5, grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:455:1: ( (lv_transitions_6_0= ruleTransition ) )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==RULE_ID) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:456:1: (lv_transitions_6_0= ruleTransition )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:456:1: (lv_transitions_6_0= ruleTransition )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:457:3: lv_transitions_6_0= ruleTransition
+ {
+
+ newCompositeNode(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0());
+
+ pushFollow(FOLLOW_ruleTransition_in_ruleSimpleState911);
+ lv_transitions_6_0=ruleTransition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSimpleStateRule());
+ }
+ add(
+ current,
+ "transitions",
+ lv_transitions_6_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ otherlv_7=(Token)match(input,18,FOLLOW_18_in_ruleSimpleState924);
+
+ newLeafNode(otherlv_7, grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:477:1: (otherlv_8= 'debug' ( (lv_dbgName_9_0= RULE_ID ) ) )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==19) ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:477:3: otherlv_8= 'debug' ( (lv_dbgName_9_0= RULE_ID ) )
+ {
+ otherlv_8=(Token)match(input,19,FOLLOW_19_in_ruleSimpleState937);
+
+ newLeafNode(otherlv_8, grammarAccess.getSimpleStateAccess().getDebugKeyword_7_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:481:1: ( (lv_dbgName_9_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:482:1: (lv_dbgName_9_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:482:1: (lv_dbgName_9_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:483:3: lv_dbgName_9_0= RULE_ID
+ {
+ lv_dbgName_9_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleState954);
+
+ newLeafNode(lv_dbgName_9_0, grammarAccess.getSimpleStateAccess().getDbgNameIDTerminalRuleCall_7_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "dbgName",
+ lv_dbgName_9_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSimpleState"
+
+
+ // $ANTLR start "entryRuleCompoundState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:507:1: entryRuleCompoundState returns [EObject current=null] : iv_ruleCompoundState= ruleCompoundState EOF ;
+ public final EObject entryRuleCompoundState() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCompoundState = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:508:2: (iv_ruleCompoundState= ruleCompoundState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:509:2: iv_ruleCompoundState= ruleCompoundState EOF
+ {
+ newCompositeNode(grammarAccess.getCompoundStateRule());
+ pushFollow(FOLLOW_ruleCompoundState_in_entryRuleCompoundState997);
+ iv_ruleCompoundState=ruleCompoundState();
+
+ state._fsp--;
+
+ current =iv_ruleCompoundState;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCompoundState1007);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCompoundState"
+
+
+ // $ANTLR start "ruleCompoundState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:516:1: ruleCompoundState returns [EObject current=null] : (otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' (otherlv_9= 'debug' ( (lv_dbgName_10_0= RULE_ID ) ) )? ) ;
+ public final EObject ruleCompoundState() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_initial_1_0=null;
+ Token otherlv_2=null;
+ Token lv_name_3_0=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ Token otherlv_6=null;
+ Token otherlv_8=null;
+ Token otherlv_9=null;
+ Token lv_dbgName_10_0=null;
+ EObject lv_transitions_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:519:28: ( (otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' (otherlv_9= 'debug' ( (lv_dbgName_10_0= RULE_ID ) ) )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:520:1: (otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' (otherlv_9= 'debug' ( (lv_dbgName_10_0= RULE_ID ) ) )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:520:1: (otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' (otherlv_9= 'debug' ( (lv_dbgName_10_0= RULE_ID ) ) )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:520:3: otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' (otherlv_9= 'debug' ( (lv_dbgName_10_0= RULE_ID ) ) )?
+ {
+ otherlv_0=(Token)match(input,21,FOLLOW_21_in_ruleCompoundState1044);
+
+ newLeafNode(otherlv_0, grammarAccess.getCompoundStateAccess().getCompoundKeyword_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:524:1: ( (lv_initial_1_0= 'initial' ) )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==12) ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:525:1: (lv_initial_1_0= 'initial' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:525:1: (lv_initial_1_0= 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:526:3: lv_initial_1_0= 'initial'
+ {
+ lv_initial_1_0=(Token)match(input,12,FOLLOW_12_in_ruleCompoundState1062);
+
+ newLeafNode(lv_initial_1_0, grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed(current, "initial", true, "initial");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_2=(Token)match(input,20,FOLLOW_20_in_ruleCompoundState1088);
+
+ newLeafNode(otherlv_2, grammarAccess.getCompoundStateAccess().getStateKeyword_2());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:543:1: ( (lv_name_3_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:544:1: (lv_name_3_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:544:1: (lv_name_3_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:545:3: lv_name_3_0= RULE_ID
+ {
+ lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCompoundState1105);
+
+ newLeafNode(lv_name_3_0, grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_3_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,22,FOLLOW_22_in_ruleCompoundState1122);
+
+ newLeafNode(otherlv_4, grammarAccess.getCompoundStateAccess().getMachineKeyword_4());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:565:1: ( (otherlv_5= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:566:1: (otherlv_5= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:566:1: (otherlv_5= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:567:3: otherlv_5= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+
+ otherlv_5=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCompoundState1142);
+
+ newLeafNode(otherlv_5, grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0());
+
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleCompoundState1154);
+
+ newLeafNode(otherlv_6, grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:582:1: ( (lv_transitions_7_0= ruleTransition ) )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==RULE_ID) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:583:1: (lv_transitions_7_0= ruleTransition )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:583:1: (lv_transitions_7_0= ruleTransition )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:584:3: lv_transitions_7_0= ruleTransition
+ {
+
+ newCompositeNode(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0());
+
+ pushFollow(FOLLOW_ruleTransition_in_ruleCompoundState1175);
+ lv_transitions_7_0=ruleTransition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCompoundStateRule());
+ }
+ add(
+ current,
+ "transitions",
+ lv_transitions_7_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+ otherlv_8=(Token)match(input,18,FOLLOW_18_in_ruleCompoundState1188);
+
+ newLeafNode(otherlv_8, grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:604:1: (otherlv_9= 'debug' ( (lv_dbgName_10_0= RULE_ID ) ) )?
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==19) ) {
+ alt15=1;
+ }
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:604:3: otherlv_9= 'debug' ( (lv_dbgName_10_0= RULE_ID ) )
+ {
+ otherlv_9=(Token)match(input,19,FOLLOW_19_in_ruleCompoundState1201);
+
+ newLeafNode(otherlv_9, grammarAccess.getCompoundStateAccess().getDebugKeyword_9_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:608:1: ( (lv_dbgName_10_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:609:1: (lv_dbgName_10_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:609:1: (lv_dbgName_10_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:610:3: lv_dbgName_10_0= RULE_ID
+ {
+ lv_dbgName_10_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCompoundState1218);
+
+ newLeafNode(lv_dbgName_10_0, grammarAccess.getCompoundStateAccess().getDbgNameIDTerminalRuleCall_9_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "dbgName",
+ lv_dbgName_10_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCompoundState"
+
+
+ // $ANTLR start "entryRuleTransition"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:634:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ;
+ public final EObject entryRuleTransition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTransition = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:635:2: (iv_ruleTransition= ruleTransition EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:636:2: iv_ruleTransition= ruleTransition EOF
+ {
+ newCompositeNode(grammarAccess.getTransitionRule());
+ pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition1261);
+ iv_ruleTransition=ruleTransition();
+
+ state._fsp--;
+
+ current =iv_ruleTransition;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTransition1271);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTransition"
+
+
+ // $ANTLR start "ruleTransition"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:643:1: ruleTransition returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'debug' ( (lv_dbgName_4_0= RULE_ID ) ) )? ) ;
+ public final EObject ruleTransition() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token lv_dbgName_4_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:646:28: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'debug' ( (lv_dbgName_4_0= RULE_ID ) ) )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:647:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'debug' ( (lv_dbgName_4_0= RULE_ID ) ) )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:647:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'debug' ( (lv_dbgName_4_0= RULE_ID ) ) )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:647:2: ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'debug' ( (lv_dbgName_4_0= RULE_ID ) ) )?
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:647:2: ( (otherlv_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:648:1: (otherlv_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:648:1: (otherlv_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:649:3: otherlv_0= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTransitionRule());
+ }
+
+ otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransition1316);
+
+ newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,23,FOLLOW_23_in_ruleTransition1328);
+
+ newLeafNode(otherlv_1, grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:664:1: ( (otherlv_2= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:665:1: (otherlv_2= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:665:1: (otherlv_2= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:666:3: otherlv_2= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTransitionRule());
+ }
+
+ otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransition1348);
+
+ newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:677:2: (otherlv_3= 'debug' ( (lv_dbgName_4_0= RULE_ID ) ) )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==19) ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:677:4: otherlv_3= 'debug' ( (lv_dbgName_4_0= RULE_ID ) )
+ {
+ otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleTransition1361);
+
+ newLeafNode(otherlv_3, grammarAccess.getTransitionAccess().getDebugKeyword_3_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:681:1: ( (lv_dbgName_4_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:682:1: (lv_dbgName_4_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:682:1: (lv_dbgName_4_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalStates.g:683:3: lv_dbgName_4_0= RULE_ID
+ {
+ lv_dbgName_4_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransition1378);
+
+ newLeafNode(lv_dbgName_4_0, grammarAccess.getTransitionAccess().getDbgNameIDTerminalRuleCall_3_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTransitionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "dbgName",
+ lv_dbgName_4_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTransition"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleModule_in_entryRuleModule75 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModule85 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_ruleModule122 = new BitSet(new long[]{0x0000000000000030L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleModule141 = new BitSet(new long[]{0x0000000000003002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleModule161 = new BitSet(new long[]{0x0000000000003002L});
+ public static final BitSet FOLLOW_ruleStatemachine_in_ruleModule190 = new BitSet(new long[]{0x0000000000003002L});
+ public static final BitSet FOLLOW_ruleStatemachine_in_entryRuleStatemachine227 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStatemachine237 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_ruleStatemachine280 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_13_in_ruleStatemachine306 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleStatemachine323 = new BitSet(new long[]{0x000000000000C000L});
+ public static final BitSet FOLLOW_14_in_ruleStatemachine341 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleStatemachine358 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_15_in_ruleStatemachine377 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleStatemachine389 = new BitSet(new long[]{0x0000000000020020L});
+ public static final BitSet FOLLOW_ruleEvent_in_ruleStatemachine410 = new BitSet(new long[]{0x0000000000020020L});
+ public static final BitSet FOLLOW_17_in_ruleStatemachine423 = new BitSet(new long[]{0x0000000000341000L});
+ public static final BitSet FOLLOW_ruleState_in_ruleStatemachine444 = new BitSet(new long[]{0x0000000000341000L});
+ public static final BitSet FOLLOW_18_in_ruleStatemachine457 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleStatemachine470 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleStatemachine487 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent530 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEvent540 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleEvent581 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_entryRuleState621 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleState631 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleState_in_ruleState678 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundState_in_ruleState705 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleState_in_entryRuleSimpleState740 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSimpleState750 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_ruleSimpleState793 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_20_in_ruleSimpleState819 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleState836 = new BitSet(new long[]{0x000000000000C000L});
+ public static final BitSet FOLLOW_14_in_ruleSimpleState854 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleSimpleState871 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_15_in_ruleSimpleState890 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_ruleTransition_in_ruleSimpleState911 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_18_in_ruleSimpleState924 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleSimpleState937 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleState954 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundState_in_entryRuleCompoundState997 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCompoundState1007 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_21_in_ruleCompoundState1044 = new BitSet(new long[]{0x0000000000101000L});
+ public static final BitSet FOLLOW_12_in_ruleCompoundState1062 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_20_in_ruleCompoundState1088 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCompoundState1105 = new BitSet(new long[]{0x0000000000400000L});
+ public static final BitSet FOLLOW_22_in_ruleCompoundState1122 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCompoundState1142 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_15_in_ruleCompoundState1154 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_ruleTransition_in_ruleCompoundState1175 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_18_in_ruleCompoundState1188 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleCompoundState1201 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCompoundState1218 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition1261 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTransition1271 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleTransition1316 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleTransition1328 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleTransition1348 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleTransition1361 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleTransition1378 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/services/StatesGrammarAccess.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/services/StatesGrammarAccess.java
new file mode 100644
index 0000000..29fae42
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/services/StatesGrammarAccess.java
@@ -0,0 +1,560 @@
+/*
+* generated by Xtext
+*/
+
+package org.eclipse.ocl.tutorial.eclipsecon2011.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class StatesGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class ModuleElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Module");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cModuleKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final Alternatives cNameAlternatives_1_0 = (Alternatives)cNameAssignment_1.eContents().get(0);
+ private final RuleCall cNameSTRINGTerminalRuleCall_1_0_0 = (RuleCall)cNameAlternatives_1_0.eContents().get(0);
+ private final RuleCall cNameIDTerminalRuleCall_1_0_1 = (RuleCall)cNameAlternatives_1_0.eContents().get(1);
+ private final Assignment cMachinesAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cMachinesStatemachineParserRuleCall_2_0 = (RuleCall)cMachinesAssignment_2.eContents().get(0);
+
+ //Module:
+ // "module" name=(STRING | ID) machines+=Statemachine*;
+ public ParserRule getRule() { return rule; }
+
+ //"module" name=(STRING | ID) machines+=Statemachine*
+ public Group getGroup() { return cGroup; }
+
+ //"module"
+ public Keyword getModuleKeyword_0() { return cModuleKeyword_0; }
+
+ //name=(STRING | ID)
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //STRING | ID
+ public Alternatives getNameAlternatives_1_0() { return cNameAlternatives_1_0; }
+
+ //STRING
+ public RuleCall getNameSTRINGTerminalRuleCall_1_0_0() { return cNameSTRINGTerminalRuleCall_1_0_0; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_1_0_1() { return cNameIDTerminalRuleCall_1_0_1; }
+
+ //machines+=Statemachine*
+ public Assignment getMachinesAssignment_2() { return cMachinesAssignment_2; }
+
+ //Statemachine
+ public RuleCall getMachinesStatemachineParserRuleCall_2_0() { return cMachinesStatemachineParserRuleCall_2_0; }
+ }
+
+ public class StatemachineElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Statemachine");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cInitialAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final Keyword cInitialInitialKeyword_0_0 = (Keyword)cInitialAssignment_0.eContents().get(0);
+ private final Keyword cStatemachineKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cValueKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final RuleCall cValueINTTerminalRuleCall_3_1_0 = (RuleCall)cValueAssignment_3_1.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Keyword cEventsKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cEventsAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cEventsEventParserRuleCall_6_0 = (RuleCall)cEventsAssignment_6.eContents().get(0);
+ private final Keyword cSemicolonKeyword_7 = (Keyword)cGroup.eContents().get(7);
+ private final Assignment cStatesAssignment_8 = (Assignment)cGroup.eContents().get(8);
+ private final RuleCall cStatesStateParserRuleCall_8_0 = (RuleCall)cStatesAssignment_8.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+ private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
+ private final Keyword cDebugKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
+ private final Assignment cDbgNameAssignment_10_1 = (Assignment)cGroup_10.eContents().get(1);
+ private final RuleCall cDbgNameIDTerminalRuleCall_10_1_0 = (RuleCall)cDbgNameAssignment_10_1.eContents().get(0);
+
+ //Statemachine:
+ // initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}"
+ // ("debug" dbgName=ID)?;
+ public ParserRule getRule() { return rule; }
+
+ //initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}"
+ //("debug" dbgName=ID)?
+ public Group getGroup() { return cGroup; }
+
+ //initial?="initial"?
+ public Assignment getInitialAssignment_0() { return cInitialAssignment_0; }
+
+ //"initial"
+ public Keyword getInitialInitialKeyword_0_0() { return cInitialInitialKeyword_0_0; }
+
+ //"statemachine"
+ public Keyword getStatemachineKeyword_1() { return cStatemachineKeyword_1; }
+
+ //name=ID
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+ //("value" value=INT)?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"value"
+ public Keyword getValueKeyword_3_0() { return cValueKeyword_3_0; }
+
+ //value=INT
+ public Assignment getValueAssignment_3_1() { return cValueAssignment_3_1; }
+
+ //INT
+ public RuleCall getValueINTTerminalRuleCall_3_1_0() { return cValueINTTerminalRuleCall_3_1_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+ //"events"
+ public Keyword getEventsKeyword_5() { return cEventsKeyword_5; }
+
+ //events+=Event*
+ public Assignment getEventsAssignment_6() { return cEventsAssignment_6; }
+
+ //Event
+ public RuleCall getEventsEventParserRuleCall_6_0() { return cEventsEventParserRuleCall_6_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_7() { return cSemicolonKeyword_7; }
+
+ //states+=State*
+ public Assignment getStatesAssignment_8() { return cStatesAssignment_8; }
+
+ //State
+ public RuleCall getStatesStateParserRuleCall_8_0() { return cStatesStateParserRuleCall_8_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+
+ //("debug" dbgName=ID)?
+ public Group getGroup_10() { return cGroup_10; }
+
+ //"debug"
+ public Keyword getDebugKeyword_10_0() { return cDebugKeyword_10_0; }
+
+ //dbgName=ID
+ public Assignment getDbgNameAssignment_10_1() { return cDbgNameAssignment_10_1; }
+
+ //ID
+ public RuleCall getDbgNameIDTerminalRuleCall_10_1_0() { return cDbgNameIDTerminalRuleCall_10_1_0; }
+ }
+
+ public class EventElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Event");
+ private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
+
+ //Event:
+ // name=ID;
+ public ParserRule getRule() { return rule; }
+
+ //name=ID
+ public Assignment getNameAssignment() { return cNameAssignment; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; }
+ }
+
+ public class StateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "State");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cSimpleStateParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cCompoundStateParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //State:
+ // SimpleState | CompoundState;
+ public ParserRule getRule() { return rule; }
+
+ //SimpleState | CompoundState
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //SimpleState
+ public RuleCall getSimpleStateParserRuleCall_0() { return cSimpleStateParserRuleCall_0; }
+
+ //CompoundState
+ public RuleCall getCompoundStateParserRuleCall_1() { return cCompoundStateParserRuleCall_1; }
+ }
+
+ public class SimpleStateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleState");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cInitialAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final Keyword cInitialInitialKeyword_0_0 = (Keyword)cInitialAssignment_0.eContents().get(0);
+ private final Keyword cStateKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cValueKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final RuleCall cValueINTTerminalRuleCall_3_1_0 = (RuleCall)cValueAssignment_3_1.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cTransitionsAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cTransitionsTransitionParserRuleCall_5_0 = (RuleCall)cTransitionsAssignment_5.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+ private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+ private final Keyword cDebugKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+ private final Assignment cDbgNameAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
+ private final RuleCall cDbgNameIDTerminalRuleCall_7_1_0 = (RuleCall)cDbgNameAssignment_7_1.eContents().get(0);
+
+ //SimpleState:
+ // initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}" ("debug" dbgName=ID)?;
+ public ParserRule getRule() { return rule; }
+
+ //initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}" ("debug" dbgName=ID)?
+ public Group getGroup() { return cGroup; }
+
+ //initial?="initial"?
+ public Assignment getInitialAssignment_0() { return cInitialAssignment_0; }
+
+ //"initial"
+ public Keyword getInitialInitialKeyword_0_0() { return cInitialInitialKeyword_0_0; }
+
+ //"state"
+ public Keyword getStateKeyword_1() { return cStateKeyword_1; }
+
+ //name=ID
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+ //("value" value=INT)?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"value"
+ public Keyword getValueKeyword_3_0() { return cValueKeyword_3_0; }
+
+ //value=INT
+ public Assignment getValueAssignment_3_1() { return cValueAssignment_3_1; }
+
+ //INT
+ public RuleCall getValueINTTerminalRuleCall_3_1_0() { return cValueINTTerminalRuleCall_3_1_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+ //transitions+=Transition*
+ public Assignment getTransitionsAssignment_5() { return cTransitionsAssignment_5; }
+
+ //Transition
+ public RuleCall getTransitionsTransitionParserRuleCall_5_0() { return cTransitionsTransitionParserRuleCall_5_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+
+ //("debug" dbgName=ID)?
+ public Group getGroup_7() { return cGroup_7; }
+
+ //"debug"
+ public Keyword getDebugKeyword_7_0() { return cDebugKeyword_7_0; }
+
+ //dbgName=ID
+ public Assignment getDbgNameAssignment_7_1() { return cDbgNameAssignment_7_1; }
+
+ //ID
+ public RuleCall getDbgNameIDTerminalRuleCall_7_1_0() { return cDbgNameIDTerminalRuleCall_7_1_0; }
+ }
+
+ public class CompoundStateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CompoundState");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cCompoundKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cInitialAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final Keyword cInitialInitialKeyword_1_0 = (Keyword)cInitialAssignment_1.eContents().get(0);
+ private final Keyword cStateKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
+ private final Keyword cMachineKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cMachineAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final CrossReference cMachineStatemachineCrossReference_5_0 = (CrossReference)cMachineAssignment_5.eContents().get(0);
+ private final RuleCall cMachineStatemachineIDTerminalRuleCall_5_0_1 = (RuleCall)cMachineStatemachineCrossReference_5_0.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+ private final Assignment cTransitionsAssignment_7 = (Assignment)cGroup.eContents().get(7);
+ private final RuleCall cTransitionsTransitionParserRuleCall_7_0 = (RuleCall)cTransitionsAssignment_7.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+ private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
+ private final Keyword cDebugKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
+ private final Assignment cDbgNameAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
+ private final RuleCall cDbgNameIDTerminalRuleCall_9_1_0 = (RuleCall)cDbgNameAssignment_9_1.eContents().get(0);
+
+ //CompoundState:
+ // "compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}"
+ // ("debug" dbgName=ID)?;
+ public ParserRule getRule() { return rule; }
+
+ //"compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}"
+ //("debug" dbgName=ID)?
+ public Group getGroup() { return cGroup; }
+
+ //"compound"
+ public Keyword getCompoundKeyword_0() { return cCompoundKeyword_0; }
+
+ //initial?="initial"?
+ public Assignment getInitialAssignment_1() { return cInitialAssignment_1; }
+
+ //"initial"
+ public Keyword getInitialInitialKeyword_1_0() { return cInitialInitialKeyword_1_0; }
+
+ //"state"
+ public Keyword getStateKeyword_2() { return cStateKeyword_2; }
+
+ //name=ID
+ public Assignment getNameAssignment_3() { return cNameAssignment_3; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
+
+ //"machine"
+ public Keyword getMachineKeyword_4() { return cMachineKeyword_4; }
+
+ //machine=[Statemachine]
+ public Assignment getMachineAssignment_5() { return cMachineAssignment_5; }
+
+ //[Statemachine]
+ public CrossReference getMachineStatemachineCrossReference_5_0() { return cMachineStatemachineCrossReference_5_0; }
+
+ //ID
+ public RuleCall getMachineStatemachineIDTerminalRuleCall_5_0_1() { return cMachineStatemachineIDTerminalRuleCall_5_0_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; }
+
+ //transitions+=Transition*
+ public Assignment getTransitionsAssignment_7() { return cTransitionsAssignment_7; }
+
+ //Transition
+ public RuleCall getTransitionsTransitionParserRuleCall_7_0() { return cTransitionsTransitionParserRuleCall_7_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
+
+ //("debug" dbgName=ID)?
+ public Group getGroup_9() { return cGroup_9; }
+
+ //"debug"
+ public Keyword getDebugKeyword_9_0() { return cDebugKeyword_9_0; }
+
+ //dbgName=ID
+ public Assignment getDbgNameAssignment_9_1() { return cDbgNameAssignment_9_1; }
+
+ //ID
+ public RuleCall getDbgNameIDTerminalRuleCall_9_1_0() { return cDbgNameIDTerminalRuleCall_9_1_0; }
+ }
+
+ public class TransitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Transition");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cEventAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final CrossReference cEventEventCrossReference_0_0 = (CrossReference)cEventAssignment_0.eContents().get(0);
+ private final RuleCall cEventEventIDTerminalRuleCall_0_0_1 = (RuleCall)cEventEventCrossReference_0_0.eContents().get(1);
+ private final Keyword cEqualsSignGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cStateAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cStateStateCrossReference_2_0 = (CrossReference)cStateAssignment_2.eContents().get(0);
+ private final RuleCall cStateStateIDTerminalRuleCall_2_0_1 = (RuleCall)cStateStateCrossReference_2_0.eContents().get(1);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cDebugKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cDbgNameAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final RuleCall cDbgNameIDTerminalRuleCall_3_1_0 = (RuleCall)cDbgNameAssignment_3_1.eContents().get(0);
+
+ //Transition:
+ // event=[Event] "=>" state=[State] ("debug" dbgName=ID)?;
+ public ParserRule getRule() { return rule; }
+
+ //event=[Event] "=>" state=[State] ("debug" dbgName=ID)?
+ public Group getGroup() { return cGroup; }
+
+ //event=[Event]
+ public Assignment getEventAssignment_0() { return cEventAssignment_0; }
+
+ //[Event]
+ public CrossReference getEventEventCrossReference_0_0() { return cEventEventCrossReference_0_0; }
+
+ //ID
+ public RuleCall getEventEventIDTerminalRuleCall_0_0_1() { return cEventEventIDTerminalRuleCall_0_0_1; }
+
+ //"=>"
+ public Keyword getEqualsSignGreaterThanSignKeyword_1() { return cEqualsSignGreaterThanSignKeyword_1; }
+
+ //state=[State]
+ public Assignment getStateAssignment_2() { return cStateAssignment_2; }
+
+ //[State]
+ public CrossReference getStateStateCrossReference_2_0() { return cStateStateCrossReference_2_0; }
+
+ //ID
+ public RuleCall getStateStateIDTerminalRuleCall_2_0_1() { return cStateStateIDTerminalRuleCall_2_0_1; }
+
+ //("debug" dbgName=ID)?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"debug"
+ public Keyword getDebugKeyword_3_0() { return cDebugKeyword_3_0; }
+
+ //dbgName=ID
+ public Assignment getDbgNameAssignment_3_1() { return cDbgNameAssignment_3_1; }
+
+ //ID
+ public RuleCall getDbgNameIDTerminalRuleCall_3_1_0() { return cDbgNameIDTerminalRuleCall_3_1_0; }
+ }
+
+
+ private ModuleElements pModule;
+ private StatemachineElements pStatemachine;
+ private EventElements pEvent;
+ private StateElements pState;
+ private SimpleStateElements pSimpleState;
+ private CompoundStateElements pCompoundState;
+ private TransitionElements pTransition;
+
+ private final GrammarProvider grammarProvider;
+
+ private TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public StatesGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammarProvider = grammarProvider;
+ this.gaTerminals = gaTerminals;
+ }
+
+ public Grammar getGrammar() {
+ return grammarProvider.getGrammar(this);
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ //Module:
+ // "module" name=(STRING | ID) machines+=Statemachine*;
+ public ModuleElements getModuleAccess() {
+ return (pModule != null) ? pModule : (pModule = new ModuleElements());
+ }
+
+ public ParserRule getModuleRule() {
+ return getModuleAccess().getRule();
+ }
+
+ //Statemachine:
+ // initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}"
+ // ("debug" dbgName=ID)?;
+ public StatemachineElements getStatemachineAccess() {
+ return (pStatemachine != null) ? pStatemachine : (pStatemachine = new StatemachineElements());
+ }
+
+ public ParserRule getStatemachineRule() {
+ return getStatemachineAccess().getRule();
+ }
+
+ //Event:
+ // name=ID;
+ public EventElements getEventAccess() {
+ return (pEvent != null) ? pEvent : (pEvent = new EventElements());
+ }
+
+ public ParserRule getEventRule() {
+ return getEventAccess().getRule();
+ }
+
+ //State:
+ // SimpleState | CompoundState;
+ public StateElements getStateAccess() {
+ return (pState != null) ? pState : (pState = new StateElements());
+ }
+
+ public ParserRule getStateRule() {
+ return getStateAccess().getRule();
+ }
+
+ //SimpleState:
+ // initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}" ("debug" dbgName=ID)?;
+ public SimpleStateElements getSimpleStateAccess() {
+ return (pSimpleState != null) ? pSimpleState : (pSimpleState = new SimpleStateElements());
+ }
+
+ public ParserRule getSimpleStateRule() {
+ return getSimpleStateAccess().getRule();
+ }
+
+ //CompoundState:
+ // "compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}"
+ // ("debug" dbgName=ID)?;
+ public CompoundStateElements getCompoundStateAccess() {
+ return (pCompoundState != null) ? pCompoundState : (pCompoundState = new CompoundStateElements());
+ }
+
+ public ParserRule getCompoundStateRule() {
+ return getCompoundStateAccess().getRule();
+ }
+
+ //Transition:
+ // event=[Event] "=>" state=[State] ("debug" dbgName=ID)?;
+ public TransitionElements getTransitionAccess() {
+ return (pTransition != null) ? pTransition : (pTransition = new TransitionElements());
+ }
+
+ public ParserRule getTransitionRule() {
+ return getTransitionAccess().getRule();
+ }
+
+ //terminal ID:
+ // "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
+ public TerminalRule getIDRule() {
+ return gaTerminals.getIDRule();
+ }
+
+ //terminal INT returns ecore::EInt:
+ // "0".."9"+;
+ public TerminalRule getINTRule() {
+ return gaTerminals.getINTRule();
+ }
+
+ //terminal STRING:
+ // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" |
+ // "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
+ public TerminalRule getSTRINGRule() {
+ return gaTerminals.getSTRINGRule();
+ }
+
+ //terminal ML_COMMENT:
+ // "/ *"->"* /";
+ public TerminalRule getML_COMMENTRule() {
+ return gaTerminals.getML_COMMENTRule();
+ }
+
+ //terminal SL_COMMENT:
+ // "//" !("\n" | "\r")* ("\r"? "\n")?;
+ public TerminalRule getSL_COMMENTRule() {
+ return gaTerminals.getSL_COMMENTRule();
+ }
+
+ //terminal WS:
+ // (" " | "\t" | "\r" | "\n")+;
+ public TerminalRule getWSRule() {
+ return gaTerminals.getWSRule();
+ }
+
+ //terminal ANY_OTHER:
+ // .;
+ public TerminalRule getANY_OTHERRule() {
+ return gaTerminals.getANY_OTHERRule();
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/CompoundState.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/CompoundState.java
new file mode 100644
index 0000000..fdd8780
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/CompoundState.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compound State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.CompoundState#getMachine <em>Machine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getCompoundState()
+ * @model
+ * @generated
+ */
+public interface CompoundState extends State
+{
+ /**
+ * Returns the value of the '<em><b>Machine</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Machine</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Machine</em>' reference.
+ * @see #setMachine(Statemachine)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getCompoundState_Machine()
+ * @model
+ * @generated
+ */
+ Statemachine getMachine();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.CompoundState#getMachine <em>Machine</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Machine</em>' reference.
+ * @see #getMachine()
+ * @generated
+ */
+ void setMachine(Statemachine value);
+
+} // CompoundState
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Event.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Event.java
new file mode 100644
index 0000000..9f2319d
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Event.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Event#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getEvent()
+ * @model
+ * @generated
+ */
+public interface Event extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getEvent_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Event#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // Event
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Module.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Module.java
new file mode 100644
index 0000000..bdfcdc6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Module.java
@@ -0,0 +1,74 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Module#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Module#getMachines <em>Machines</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getModule()
+ * @model
+ * @generated
+ */
+public interface Module 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.ocl.tutorial.eclipsecon2011.states.StatesPackage#getModule_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Module#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Machines</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Machines</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>Machines</em>' containment reference list.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getModule_Machines()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Statemachine> getMachines();
+
+} // Module
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/SimpleState.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/SimpleState.java
new file mode 100644
index 0000000..ec23adf
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/SimpleState.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Simple State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getSimpleState()
+ * @model
+ * @generated
+ */
+public interface SimpleState extends State
+{
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(int)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getSimpleState_Value()
+ * @model
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+} // SimpleState
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/State.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/State.java
new file mode 100644
index 0000000..a8e1ae6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/State.java
@@ -0,0 +1,128 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#isInitial <em>Initial</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getTransitions <em>Transitions</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getDbgName <em>Dbg Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getState()
+ * @model
+ * @generated
+ */
+public interface State extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initial</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Initial</em>' attribute.
+ * @see #setInitial(boolean)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getState_Initial()
+ * @model
+ * @generated
+ */
+ boolean isInitial();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#isInitial <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initial</em>' attribute.
+ * @see #isInitial()
+ * @generated
+ */
+ void setInitial(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getState_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Transitions</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transitions</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transitions</em>' containment reference list.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getState_Transitions()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Transition> getTransitions();
+
+ /**
+ * Returns the value of the '<em><b>Dbg Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dbg 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>Dbg Name</em>' attribute.
+ * @see #setDbgName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getState_DbgName()
+ * @model
+ * @generated
+ */
+ String getDbgName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getDbgName <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dbg Name</em>' attribute.
+ * @see #getDbgName()
+ * @generated
+ */
+ void setDbgName(String value);
+
+} // State
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Statemachine.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Statemachine.java
new file mode 100644
index 0000000..50e9747
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Statemachine.java
@@ -0,0 +1,172 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statemachine</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#isInitial <em>Initial</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getEvents <em>Events</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getStates <em>States</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getDbgName <em>Dbg Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getStatemachine()
+ * @model
+ * @generated
+ */
+public interface Statemachine extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initial</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Initial</em>' attribute.
+ * @see #setInitial(boolean)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getStatemachine_Initial()
+ * @model
+ * @generated
+ */
+ boolean isInitial();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#isInitial <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initial</em>' attribute.
+ * @see #isInitial()
+ * @generated
+ */
+ void setInitial(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getStatemachine_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#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>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(int)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getStatemachine_Value()
+ * @model
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+ /**
+ * Returns the value of the '<em><b>Events</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Event}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Events</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Events</em>' containment reference list.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getStatemachine_Events()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Event> getEvents();
+
+ /**
+ * Returns the value of the '<em><b>States</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.StatesPackage#getStatemachine_States()
+ * @model containment="true"
+ * @generated
+ */
+ EList<State> getStates();
+
+ /**
+ * Returns the value of the '<em><b>Dbg Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dbg 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>Dbg Name</em>' attribute.
+ * @see #setDbgName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getStatemachine_DbgName()
+ * @model
+ * @generated
+ */
+ String getDbgName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getDbgName <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dbg Name</em>' attribute.
+ * @see #getDbgName()
+ * @generated
+ */
+ void setDbgName(String value);
+
+} // Statemachine
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/StatesFactory.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/StatesFactory.java
new file mode 100644
index 0000000..5a0d978
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/StatesFactory.java
@@ -0,0 +1,101 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+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.ocl.tutorial.eclipsecon2011.states.StatesPackage
+ * @generated
+ */
+public interface StatesFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StatesFactory eINSTANCE = org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module</em>'.
+ * @generated
+ */
+ Module createModule();
+
+ /**
+ * Returns a new object of class '<em>Statemachine</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Statemachine</em>'.
+ * @generated
+ */
+ Statemachine createStatemachine();
+
+ /**
+ * Returns a new object of class '<em>Event</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Event</em>'.
+ * @generated
+ */
+ Event createEvent();
+
+ /**
+ * Returns a new object of class '<em>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>Simple State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Simple State</em>'.
+ * @generated
+ */
+ SimpleState createSimpleState();
+
+ /**
+ * Returns a new object of class '<em>Compound State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compound State</em>'.
+ * @generated
+ */
+ CompoundState createCompoundState();
+
+ /**
+ * Returns a new object of class '<em>Transition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transition</em>'.
+ * @generated
+ */
+ Transition createTransition();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ StatesPackage getStatesPackage();
+
+} //StatesFactory
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/StatesPackage.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/StatesPackage.java
new file mode 100644
index 0000000..b8c11f3
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/StatesPackage.java
@@ -0,0 +1,938 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+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.ocl.tutorial.eclipsecon2011.states.StatesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface StatesPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "states";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://ocl.eclipse.org/tutorial/eclipsecon2011/States";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "states";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StatesPackage eINSTANCE = org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.ModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.ModuleImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getModule()
+ * @generated
+ */
+ int MODULE = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Machines</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__MACHINES = 1;
+
+ /**
+ * The number of structural features of the '<em>Module</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl <em>Statemachine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getStatemachine()
+ * @generated
+ */
+ int STATEMACHINE = 1;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__INITIAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__VALUE = 2;
+
+ /**
+ * The feature id for the '<em><b>Events</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__EVENTS = 3;
+
+ /**
+ * The feature id for the '<em><b>States</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__STATES = 4;
+
+ /**
+ * The feature id for the '<em><b>Dbg Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__DBG_NAME = 5;
+
+ /**
+ * The number of structural features of the '<em>Statemachine</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.EventImpl <em>Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.EventImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getEvent()
+ * @generated
+ */
+ int EVENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Event</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StateImpl <em>State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getState()
+ * @generated
+ */
+ int STATE = 3;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__INITIAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Transitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__TRANSITIONS = 2;
+
+ /**
+ * The feature id for the '<em><b>Dbg Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__DBG_NAME = 3;
+
+ /**
+ * The number of structural features of the '<em>State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.SimpleStateImpl <em>Simple State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.SimpleStateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getSimpleState()
+ * @generated
+ */
+ int SIMPLE_STATE = 4;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__INITIAL = STATE__INITIAL;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__NAME = STATE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Transitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__TRANSITIONS = STATE__TRANSITIONS;
+
+ /**
+ * The feature id for the '<em><b>Dbg Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__DBG_NAME = STATE__DBG_NAME;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__VALUE = STATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Simple State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE_FEATURE_COUNT = STATE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.CompoundStateImpl <em>Compound State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.CompoundStateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getCompoundState()
+ * @generated
+ */
+ int COMPOUND_STATE = 5;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__INITIAL = STATE__INITIAL;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__NAME = STATE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Transitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__TRANSITIONS = STATE__TRANSITIONS;
+
+ /**
+ * The feature id for the '<em><b>Dbg Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__DBG_NAME = STATE__DBG_NAME;
+
+ /**
+ * The feature id for the '<em><b>Machine</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__MACHINE = STATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Compound State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE_FEATURE_COUNT = STATE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.TransitionImpl <em>Transition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.TransitionImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getTransition()
+ * @generated
+ */
+ int TRANSITION = 6;
+
+ /**
+ * The feature id for the '<em><b>Event</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION__EVENT = 0;
+
+ /**
+ * The feature id for the '<em><b>State</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION__STATE = 1;
+
+ /**
+ * The feature id for the '<em><b>Dbg Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION__DBG_NAME = 2;
+
+ /**
+ * The number of structural features of the '<em>Transition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_FEATURE_COUNT = 3;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Module <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Module
+ * @generated
+ */
+ EClass getModule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Module#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Module#getName()
+ * @see #getModule()
+ * @generated
+ */
+ EAttribute getModule_Name();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Module#getMachines <em>Machines</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Machines</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Module#getMachines()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_Machines();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine <em>Statemachine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Statemachine</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine
+ * @generated
+ */
+ EClass getStatemachine();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#isInitial <em>Initial</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Initial</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#isInitial()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EAttribute getStatemachine_Initial();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getName()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EAttribute getStatemachine_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getValue()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EAttribute getStatemachine_Value();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getEvents <em>Events</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Events</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getEvents()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EReference getStatemachine_Events();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getStates <em>States</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>States</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getStates()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EReference getStatemachine_States();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getDbgName <em>Dbg Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dbg Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine#getDbgName()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EAttribute getStatemachine_DbgName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Event <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Event</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Event
+ * @generated
+ */
+ EClass getEvent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Event#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Event#getName()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>State</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.State
+ * @generated
+ */
+ EClass getState();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#isInitial <em>Initial</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Initial</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.State#isInitial()
+ * @see #getState()
+ * @generated
+ */
+ EAttribute getState_Initial();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getName()
+ * @see #getState()
+ * @generated
+ */
+ EAttribute getState_Name();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getTransitions <em>Transitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Transitions</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getTransitions()
+ * @see #getState()
+ * @generated
+ */
+ EReference getState_Transitions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getDbgName <em>Dbg Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dbg Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.State#getDbgName()
+ * @see #getState()
+ * @generated
+ */
+ EAttribute getState_DbgName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState <em>Simple State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Simple State</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState
+ * @generated
+ */
+ EClass getSimpleState();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState#getValue()
+ * @see #getSimpleState()
+ * @generated
+ */
+ EAttribute getSimpleState_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.CompoundState <em>Compound State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compound State</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.CompoundState
+ * @generated
+ */
+ EClass getCompoundState();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.CompoundState#getMachine <em>Machine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Machine</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.CompoundState#getMachine()
+ * @see #getCompoundState()
+ * @generated
+ */
+ EReference getCompoundState_Machine();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition <em>Transition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transition</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition
+ * @generated
+ */
+ EClass getTransition();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getEvent <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Event</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getEvent()
+ * @see #getTransition()
+ * @generated
+ */
+ EReference getTransition_Event();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getState <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>State</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getState()
+ * @see #getTransition()
+ * @generated
+ */
+ EReference getTransition_State();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getDbgName <em>Dbg Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dbg Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getDbgName()
+ * @see #getTransition()
+ * @generated
+ */
+ EAttribute getTransition_DbgName();
+
+ /**
+ * 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
+ */
+ StatesFactory getStatesFactory();
+
+ /**
+ * <!-- 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.ocl.tutorial.eclipsecon2011.states.impl.ModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.ModuleImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getModule()
+ * @generated
+ */
+ EClass MODULE = eINSTANCE.getModule();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODULE__NAME = eINSTANCE.getModule_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Machines</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__MACHINES = eINSTANCE.getModule_Machines();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl <em>Statemachine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getStatemachine()
+ * @generated
+ */
+ EClass STATEMACHINE = eINSTANCE.getStatemachine();
+
+ /**
+ * The meta object literal for the '<em><b>Initial</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATEMACHINE__INITIAL = eINSTANCE.getStatemachine_Initial();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATEMACHINE__NAME = eINSTANCE.getStatemachine_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATEMACHINE__VALUE = eINSTANCE.getStatemachine_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Events</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMACHINE__EVENTS = eINSTANCE.getStatemachine_Events();
+
+ /**
+ * The meta object literal for the '<em><b>States</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMACHINE__STATES = eINSTANCE.getStatemachine_States();
+
+ /**
+ * The meta object literal for the '<em><b>Dbg Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATEMACHINE__DBG_NAME = eINSTANCE.getStatemachine_DbgName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.EventImpl <em>Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.EventImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getEvent()
+ * @generated
+ */
+ EClass EVENT = eINSTANCE.getEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__NAME = eINSTANCE.getEvent_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StateImpl <em>State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getState()
+ * @generated
+ */
+ EClass STATE = eINSTANCE.getState();
+
+ /**
+ * The meta object literal for the '<em><b>Initial</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATE__INITIAL = eINSTANCE.getState_Initial();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATE__NAME = eINSTANCE.getState_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Transitions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATE__TRANSITIONS = eINSTANCE.getState_Transitions();
+
+ /**
+ * The meta object literal for the '<em><b>Dbg Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATE__DBG_NAME = eINSTANCE.getState_DbgName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.SimpleStateImpl <em>Simple State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.SimpleStateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getSimpleState()
+ * @generated
+ */
+ EClass SIMPLE_STATE = eINSTANCE.getSimpleState();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIMPLE_STATE__VALUE = eINSTANCE.getSimpleState_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.CompoundStateImpl <em>Compound State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.CompoundStateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getCompoundState()
+ * @generated
+ */
+ EClass COMPOUND_STATE = eINSTANCE.getCompoundState();
+
+ /**
+ * The meta object literal for the '<em><b>Machine</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOUND_STATE__MACHINE = eINSTANCE.getCompoundState_Machine();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.TransitionImpl <em>Transition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.TransitionImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatesPackageImpl#getTransition()
+ * @generated
+ */
+ EClass TRANSITION = eINSTANCE.getTransition();
+
+ /**
+ * The meta object literal for the '<em><b>Event</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION__EVENT = eINSTANCE.getTransition_Event();
+
+ /**
+ * The meta object literal for the '<em><b>State</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION__STATE = eINSTANCE.getTransition_State();
+
+ /**
+ * The meta object literal for the '<em><b>Dbg Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSITION__DBG_NAME = eINSTANCE.getTransition_DbgName();
+
+ }
+
+} //StatesPackage
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Transition.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Transition.java
new file mode 100644
index 0000000..f208a06
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/Transition.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getEvent <em>Event</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getState <em>State</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getDbgName <em>Dbg Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getTransition()
+ * @model
+ * @generated
+ */
+public interface Transition extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Event</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Event</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Event</em>' reference.
+ * @see #setEvent(Event)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getTransition_Event()
+ * @model
+ * @generated
+ */
+ Event getEvent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getEvent <em>Event</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Event</em>' reference.
+ * @see #getEvent()
+ * @generated
+ */
+ void setEvent(Event value);
+
+ /**
+ * Returns the value of the '<em><b>State</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>State</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>State</em>' reference.
+ * @see #setState(State)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getTransition_State()
+ * @model
+ * @generated
+ */
+ State getState();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getState <em>State</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>State</em>' reference.
+ * @see #getState()
+ * @generated
+ */
+ void setState(State value);
+
+ /**
+ * Returns the value of the '<em><b>Dbg Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dbg 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>Dbg Name</em>' attribute.
+ * @see #setDbgName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#getTransition_DbgName()
+ * @model
+ * @generated
+ */
+ String getDbgName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition#getDbgName <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dbg Name</em>' attribute.
+ * @see #getDbgName()
+ * @generated
+ */
+ void setDbgName(String value);
+
+} // Transition
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/CompoundStateImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/CompoundStateImpl.java
new file mode 100644
index 0000000..02fd71a
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/CompoundStateImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.CompoundState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compound State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.CompoundStateImpl#getMachine <em>Machine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CompoundStateImpl extends StateImpl implements CompoundState
+{
+ /**
+ * The cached value of the '{@link #getMachine() <em>Machine</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMachine()
+ * @generated
+ * @ordered
+ */
+ protected Statemachine machine;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompoundStateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatesPackage.Literals.COMPOUND_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine getMachine()
+ {
+ if (machine != null && machine.eIsProxy())
+ {
+ InternalEObject oldMachine = (InternalEObject)machine;
+ machine = (Statemachine)eResolveProxy(oldMachine);
+ if (machine != oldMachine)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StatesPackage.COMPOUND_STATE__MACHINE, oldMachine, machine));
+ }
+ }
+ return machine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine basicGetMachine()
+ {
+ return machine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMachine(Statemachine newMachine)
+ {
+ Statemachine oldMachine = machine;
+ machine = newMachine;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.COMPOUND_STATE__MACHINE, oldMachine, machine));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.COMPOUND_STATE__MACHINE:
+ if (resolve) return getMachine();
+ return basicGetMachine();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.COMPOUND_STATE__MACHINE:
+ setMachine((Statemachine)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.COMPOUND_STATE__MACHINE:
+ setMachine((Statemachine)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.COMPOUND_STATE__MACHINE:
+ return machine != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer();
+ result.append("CompoundState: ");
+ result.append(name);
+ return result.toString();
+ }
+
+} //CompoundStateImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/EventImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/EventImpl.java
new file mode 100644
index 0000000..02346d9
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/EventImpl.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.EventImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EventImpl extends MinimalEObjectImpl.Container implements Event
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EventImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatesPackage.Literals.EVENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.EVENT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.EVENT__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 StatesPackage.EVENT__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 StatesPackage.EVENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.EVENT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer();
+ result.append("Event: ");
+ result.append(name);
+ return result.toString();
+ }
+
+} //EventImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/ModuleImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/ModuleImpl.java
new file mode 100644
index 0000000..9954a73
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/ModuleImpl.java
@@ -0,0 +1,244 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.Module;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.ModuleImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.ModuleImpl#getMachines <em>Machines</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModuleImpl extends MinimalEObjectImpl.Container implements Module
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getMachines() <em>Machines</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMachines()
+ * @generated
+ * @ordered
+ */
+ protected EList<Statemachine> machines;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModuleImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatesPackage.Literals.MODULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.MODULE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Statemachine> getMachines()
+ {
+ if (machines == null)
+ {
+ machines = new EObjectContainmentEList<Statemachine>(Statemachine.class, this, StatesPackage.MODULE__MACHINES);
+ }
+ return machines;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.MODULE__MACHINES:
+ return ((InternalEList<?>)getMachines()).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 StatesPackage.MODULE__NAME:
+ return getName();
+ case StatesPackage.MODULE__MACHINES:
+ return getMachines();
+ }
+ 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 StatesPackage.MODULE__NAME:
+ setName((String)newValue);
+ return;
+ case StatesPackage.MODULE__MACHINES:
+ getMachines().clear();
+ getMachines().addAll((Collection<? extends Statemachine>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.MODULE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case StatesPackage.MODULE__MACHINES:
+ getMachines().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.MODULE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case StatesPackage.MODULE__MACHINES:
+ return machines != null && !machines.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModuleImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/SimpleStateImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/SimpleStateImpl.java
new file mode 100644
index 0000000..5112ada
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/SimpleStateImpl.java
@@ -0,0 +1,179 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Simple State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.SimpleStateImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SimpleStateImpl extends StateImpl implements SimpleState
+{
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SimpleStateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatesPackage.Literals.SIMPLE_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(int newValue)
+ {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.SIMPLE_STATE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.SIMPLE_STATE__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.SIMPLE_STATE__VALUE:
+ setValue((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.SIMPLE_STATE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.SIMPLE_STATE__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer();
+ result.append("SimpleState: ");
+ result.append(name);
+ return result.toString();
+ }
+
+} //SimpleStateImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StateImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StateImpl.java
new file mode 100644
index 0000000..e5532d5
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StateImpl.java
@@ -0,0 +1,356 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition;
+
+/**
+ * <!-- 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.ocl.tutorial.eclipsecon2011.states.impl.StateImpl#isInitial <em>Initial</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StateImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StateImpl#getTransitions <em>Transitions</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StateImpl#getDbgName <em>Dbg Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StateImpl extends MinimalEObjectImpl.Container implements State
+{
+ /**
+ * The default value of the '{@link #isInitial() <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInitial()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INITIAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInitial() <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInitial()
+ * @generated
+ * @ordered
+ */
+ protected boolean initial = INITIAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTransitions() <em>Transitions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransitions()
+ * @generated
+ * @ordered
+ */
+ protected EList<Transition> transitions;
+
+ /**
+ * The default value of the '{@link #getDbgName() <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbgName()
+ * @generated
+ * @ordered
+ */
+ protected static final String DBG_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDbgName() <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbgName()
+ * @generated
+ * @ordered
+ */
+ protected String dbgName = DBG_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatesPackage.Literals.STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInitial()
+ {
+ return initial;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitial(boolean newInitial)
+ {
+ boolean oldInitial = initial;
+ initial = newInitial;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.STATE__INITIAL, oldInitial, initial));
+ }
+
+ /**
+ * <!-- 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, StatesPackage.STATE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Transition> getTransitions()
+ {
+ if (transitions == null)
+ {
+ transitions = new EObjectContainmentEList<Transition>(Transition.class, this, StatesPackage.STATE__TRANSITIONS);
+ }
+ return transitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDbgName()
+ {
+ return dbgName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbgName(String newDbgName)
+ {
+ String oldDbgName = dbgName;
+ dbgName = newDbgName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.STATE__DBG_NAME, oldDbgName, dbgName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.STATE__TRANSITIONS:
+ return ((InternalEList<?>)getTransitions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.STATE__INITIAL:
+ return isInitial();
+ case StatesPackage.STATE__NAME:
+ return getName();
+ case StatesPackage.STATE__TRANSITIONS:
+ return getTransitions();
+ case StatesPackage.STATE__DBG_NAME:
+ return getDbgName();
+ }
+ 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 StatesPackage.STATE__INITIAL:
+ setInitial((Boolean)newValue);
+ return;
+ case StatesPackage.STATE__NAME:
+ setName((String)newValue);
+ return;
+ case StatesPackage.STATE__TRANSITIONS:
+ getTransitions().clear();
+ getTransitions().addAll((Collection<? extends Transition>)newValue);
+ return;
+ case StatesPackage.STATE__DBG_NAME:
+ setDbgName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.STATE__INITIAL:
+ setInitial(INITIAL_EDEFAULT);
+ return;
+ case StatesPackage.STATE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case StatesPackage.STATE__TRANSITIONS:
+ getTransitions().clear();
+ return;
+ case StatesPackage.STATE__DBG_NAME:
+ setDbgName(DBG_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.STATE__INITIAL:
+ return initial != INITIAL_EDEFAULT;
+ case StatesPackage.STATE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case StatesPackage.STATE__TRANSITIONS:
+ return transitions != null && !transitions.isEmpty();
+ case StatesPackage.STATE__DBG_NAME:
+ return DBG_NAME_EDEFAULT == null ? dbgName != null : !DBG_NAME_EDEFAULT.equals(dbgName);
+ }
+ 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(" (initial: ");
+ result.append(initial);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", dbgName: ");
+ result.append(dbgName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StateImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatemachineImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatemachineImpl.java
new file mode 100644
index 0000000..72aca6f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatemachineImpl.java
@@ -0,0 +1,451 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Statemachine</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl#isInitial <em>Initial</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl#getEvents <em>Events</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl#getStates <em>States</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.StatemachineImpl#getDbgName <em>Dbg Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StatemachineImpl extends MinimalEObjectImpl.Container implements Statemachine
+{
+ /**
+ * The default value of the '{@link #isInitial() <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInitial()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INITIAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInitial() <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInitial()
+ * @generated
+ * @ordered
+ */
+ protected boolean initial = INITIAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getEvents() <em>Events</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvents()
+ * @generated
+ * @ordered
+ */
+ protected EList<Event> events;
+
+ /**
+ * The cached value of the '{@link #getStates() <em>States</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStates()
+ * @generated
+ * @ordered
+ */
+ protected EList<State> states;
+
+ /**
+ * The default value of the '{@link #getDbgName() <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbgName()
+ * @generated
+ * @ordered
+ */
+ protected static final String DBG_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDbgName() <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbgName()
+ * @generated
+ * @ordered
+ */
+ protected String dbgName = DBG_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StatemachineImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatesPackage.Literals.STATEMACHINE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInitial()
+ {
+ return initial;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitial(boolean newInitial)
+ {
+ boolean oldInitial = initial;
+ initial = newInitial;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.STATEMACHINE__INITIAL, oldInitial, initial));
+ }
+
+ /**
+ * <!-- 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, StatesPackage.STATEMACHINE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(int newValue)
+ {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.STATEMACHINE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Event> getEvents()
+ {
+ if (events == null)
+ {
+ events = new EObjectContainmentEList<Event>(Event.class, this, StatesPackage.STATEMACHINE__EVENTS);
+ }
+ return events;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<State> getStates()
+ {
+ if (states == null)
+ {
+ states = new EObjectContainmentEList<State>(State.class, this, StatesPackage.STATEMACHINE__STATES);
+ }
+ return states;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDbgName()
+ {
+ return dbgName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbgName(String newDbgName)
+ {
+ String oldDbgName = dbgName;
+ dbgName = newDbgName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.STATEMACHINE__DBG_NAME, oldDbgName, dbgName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.STATEMACHINE__EVENTS:
+ return ((InternalEList<?>)getEvents()).basicRemove(otherEnd, msgs);
+ case StatesPackage.STATEMACHINE__STATES:
+ return ((InternalEList<?>)getStates()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.STATEMACHINE__INITIAL:
+ return isInitial();
+ case StatesPackage.STATEMACHINE__NAME:
+ return getName();
+ case StatesPackage.STATEMACHINE__VALUE:
+ return getValue();
+ case StatesPackage.STATEMACHINE__EVENTS:
+ return getEvents();
+ case StatesPackage.STATEMACHINE__STATES:
+ return getStates();
+ case StatesPackage.STATEMACHINE__DBG_NAME:
+ return getDbgName();
+ }
+ 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 StatesPackage.STATEMACHINE__INITIAL:
+ setInitial((Boolean)newValue);
+ return;
+ case StatesPackage.STATEMACHINE__NAME:
+ setName((String)newValue);
+ return;
+ case StatesPackage.STATEMACHINE__VALUE:
+ setValue((Integer)newValue);
+ return;
+ case StatesPackage.STATEMACHINE__EVENTS:
+ getEvents().clear();
+ getEvents().addAll((Collection<? extends Event>)newValue);
+ return;
+ case StatesPackage.STATEMACHINE__STATES:
+ getStates().clear();
+ getStates().addAll((Collection<? extends State>)newValue);
+ return;
+ case StatesPackage.STATEMACHINE__DBG_NAME:
+ setDbgName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.STATEMACHINE__INITIAL:
+ setInitial(INITIAL_EDEFAULT);
+ return;
+ case StatesPackage.STATEMACHINE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case StatesPackage.STATEMACHINE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case StatesPackage.STATEMACHINE__EVENTS:
+ getEvents().clear();
+ return;
+ case StatesPackage.STATEMACHINE__STATES:
+ getStates().clear();
+ return;
+ case StatesPackage.STATEMACHINE__DBG_NAME:
+ setDbgName(DBG_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.STATEMACHINE__INITIAL:
+ return initial != INITIAL_EDEFAULT;
+ case StatesPackage.STATEMACHINE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case StatesPackage.STATEMACHINE__VALUE:
+ return value != VALUE_EDEFAULT;
+ case StatesPackage.STATEMACHINE__EVENTS:
+ return events != null && !events.isEmpty();
+ case StatesPackage.STATEMACHINE__STATES:
+ return states != null && !states.isEmpty();
+ case StatesPackage.STATEMACHINE__DBG_NAME:
+ return DBG_NAME_EDEFAULT == null ? dbgName != null : !DBG_NAME_EDEFAULT.equals(dbgName);
+ }
+ 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(" (initial: ");
+ result.append(initial);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", dbgName: ");
+ result.append(dbgName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StatemachineImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatesFactoryImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatesFactoryImpl.java
new file mode 100644
index 0000000..fc5e8ca
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatesFactoryImpl.java
@@ -0,0 +1,182 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StatesFactoryImpl extends EFactoryImpl implements StatesFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static StatesFactory init()
+ {
+ try
+ {
+ StatesFactory theStatesFactory = (StatesFactory)EPackage.Registry.INSTANCE.getEFactory("http://ocl.eclipse.org/tutorial/eclipsecon2011/States");
+ if (theStatesFactory != null)
+ {
+ return theStatesFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new StatesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatesFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case StatesPackage.MODULE: return createModule();
+ case StatesPackage.STATEMACHINE: return createStatemachine();
+ case StatesPackage.EVENT: return createEvent();
+ case StatesPackage.STATE: return createState();
+ case StatesPackage.SIMPLE_STATE: return createSimpleState();
+ case StatesPackage.COMPOUND_STATE: return createCompoundState();
+ case StatesPackage.TRANSITION: return createTransition();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Module createModule()
+ {
+ ModuleImpl module = new ModuleImpl();
+ return module;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine createStatemachine()
+ {
+ StatemachineImpl statemachine = new StatemachineImpl();
+ return statemachine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event createEvent()
+ {
+ EventImpl event = new EventImpl();
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State createState()
+ {
+ StateImpl state = new StateImpl();
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SimpleState createSimpleState()
+ {
+ SimpleStateImpl simpleState = new SimpleStateImpl();
+ return simpleState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompoundState createCompoundState()
+ {
+ CompoundStateImpl compoundState = new CompoundStateImpl();
+ return compoundState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transition createTransition()
+ {
+ TransitionImpl transition = new TransitionImpl();
+ return transition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatesPackage getStatesPackage()
+ {
+ return (StatesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static StatesPackage getPackage()
+ {
+ return StatesPackage.eINSTANCE;
+ }
+
+} //StatesFactoryImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatesPackageImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatesPackageImpl.java
new file mode 100644
index 0000000..639a2af
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/StatesPackageImpl.java
@@ -0,0 +1,528 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.CompoundState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Module;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesFactory;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StatesPackageImpl extends EPackageImpl implements StatesPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass moduleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass statemachineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass simpleStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compoundStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transitionEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private StatesPackageImpl()
+ {
+ super(eNS_URI, StatesFactory.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 StatesPackage#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 StatesPackage init()
+ {
+ if (isInited) return (StatesPackage)EPackage.Registry.INSTANCE.getEPackage(StatesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ StatesPackageImpl theStatesPackage = (StatesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof StatesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new StatesPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theStatesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theStatesPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theStatesPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(StatesPackage.eNS_URI, theStatesPackage);
+ return theStatesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModule()
+ {
+ return moduleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModule_Name()
+ {
+ return (EAttribute)moduleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_Machines()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStatemachine()
+ {
+ return statemachineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStatemachine_Initial()
+ {
+ return (EAttribute)statemachineEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStatemachine_Name()
+ {
+ return (EAttribute)statemachineEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStatemachine_Value()
+ {
+ return (EAttribute)statemachineEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatemachine_Events()
+ {
+ return (EReference)statemachineEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatemachine_States()
+ {
+ return (EReference)statemachineEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStatemachine_DbgName()
+ {
+ return (EAttribute)statemachineEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvent()
+ {
+ return eventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_Name()
+ {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getState()
+ {
+ return stateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_Initial()
+ {
+ return (EAttribute)stateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_Name()
+ {
+ return (EAttribute)stateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Transitions()
+ {
+ return (EReference)stateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_DbgName()
+ {
+ return (EAttribute)stateEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSimpleState()
+ {
+ return simpleStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSimpleState_Value()
+ {
+ return (EAttribute)simpleStateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompoundState()
+ {
+ return compoundStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompoundState_Machine()
+ {
+ return (EReference)compoundStateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTransition()
+ {
+ return transitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Event()
+ {
+ return (EReference)transitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_State()
+ {
+ return (EReference)transitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTransition_DbgName()
+ {
+ return (EAttribute)transitionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatesFactory getStatesFactory()
+ {
+ return (StatesFactory)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
+ moduleEClass = createEClass(MODULE);
+ createEAttribute(moduleEClass, MODULE__NAME);
+ createEReference(moduleEClass, MODULE__MACHINES);
+
+ statemachineEClass = createEClass(STATEMACHINE);
+ createEAttribute(statemachineEClass, STATEMACHINE__INITIAL);
+ createEAttribute(statemachineEClass, STATEMACHINE__NAME);
+ createEAttribute(statemachineEClass, STATEMACHINE__VALUE);
+ createEReference(statemachineEClass, STATEMACHINE__EVENTS);
+ createEReference(statemachineEClass, STATEMACHINE__STATES);
+ createEAttribute(statemachineEClass, STATEMACHINE__DBG_NAME);
+
+ eventEClass = createEClass(EVENT);
+ createEAttribute(eventEClass, EVENT__NAME);
+
+ stateEClass = createEClass(STATE);
+ createEAttribute(stateEClass, STATE__INITIAL);
+ createEAttribute(stateEClass, STATE__NAME);
+ createEReference(stateEClass, STATE__TRANSITIONS);
+ createEAttribute(stateEClass, STATE__DBG_NAME);
+
+ simpleStateEClass = createEClass(SIMPLE_STATE);
+ createEAttribute(simpleStateEClass, SIMPLE_STATE__VALUE);
+
+ compoundStateEClass = createEClass(COMPOUND_STATE);
+ createEReference(compoundStateEClass, COMPOUND_STATE__MACHINE);
+
+ transitionEClass = createEClass(TRANSITION);
+ createEReference(transitionEClass, TRANSITION__EVENT);
+ createEReference(transitionEClass, TRANSITION__STATE);
+ createEAttribute(transitionEClass, TRANSITION__DBG_NAME);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ simpleStateEClass.getESuperTypes().add(this.getState());
+ compoundStateEClass.getESuperTypes().add(this.getState());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(moduleEClass, Module.class, "Module", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModule_Name(), ecorePackage.getEString(), "name", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_Machines(), this.getStatemachine(), null, "machines", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(statemachineEClass, Statemachine.class, "Statemachine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStatemachine_Initial(), ecorePackage.getEBoolean(), "initial", null, 0, 1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStatemachine_Name(), ecorePackage.getEString(), "name", null, 0, 1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStatemachine_Value(), ecorePackage.getEInt(), "value", null, 0, 1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStatemachine_Events(), this.getEvent(), null, "events", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStatemachine_States(), this.getState(), null, "states", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStatemachine_DbgName(), ecorePackage.getEString(), "dbgName", null, 0, 1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getState_Initial(), ecorePackage.getEBoolean(), "initial", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getState_Name(), ecorePackage.getEString(), "name", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getState_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getState_DbgName(), ecorePackage.getEString(), "dbgName", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(simpleStateEClass, SimpleState.class, "SimpleState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSimpleState_Value(), ecorePackage.getEInt(), "value", null, 0, 1, SimpleState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(compoundStateEClass, CompoundState.class, "CompoundState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCompoundState_Machine(), this.getStatemachine(), null, "machine", null, 0, 1, CompoundState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(transitionEClass, Transition.class, "Transition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTransition_Event(), this.getEvent(), null, "event", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTransition_State(), this.getState(), null, "state", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTransition_DbgName(), ecorePackage.getEString(), "dbgName", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //StatesPackageImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/TransitionImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/TransitionImpl.java
new file mode 100644
index 0000000..052b0e2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/impl/TransitionImpl.java
@@ -0,0 +1,315 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.TransitionImpl#getEvent <em>Event</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.TransitionImpl#getState <em>State</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.impl.TransitionImpl#getDbgName <em>Dbg Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransitionImpl extends MinimalEObjectImpl.Container implements Transition
+{
+ /**
+ * The cached value of the '{@link #getEvent() <em>Event</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvent()
+ * @generated
+ * @ordered
+ */
+ protected Event event;
+
+ /**
+ * The cached value of the '{@link #getState() <em>State</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getState()
+ * @generated
+ * @ordered
+ */
+ protected State state;
+
+ /**
+ * The default value of the '{@link #getDbgName() <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbgName()
+ * @generated
+ * @ordered
+ */
+ protected static final String DBG_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDbgName() <em>Dbg Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbgName()
+ * @generated
+ * @ordered
+ */
+ protected String dbgName = DBG_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransitionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatesPackage.Literals.TRANSITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event getEvent()
+ {
+ if (event != null && event.eIsProxy())
+ {
+ InternalEObject oldEvent = (InternalEObject)event;
+ event = (Event)eResolveProxy(oldEvent);
+ if (event != oldEvent)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StatesPackage.TRANSITION__EVENT, oldEvent, event));
+ }
+ }
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event basicGetEvent()
+ {
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEvent(Event newEvent)
+ {
+ Event oldEvent = event;
+ event = newEvent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.TRANSITION__EVENT, oldEvent, event));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getState()
+ {
+ if (state != null && state.eIsProxy())
+ {
+ InternalEObject oldState = (InternalEObject)state;
+ state = (State)eResolveProxy(oldState);
+ if (state != oldState)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StatesPackage.TRANSITION__STATE, oldState, state));
+ }
+ }
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State basicGetState()
+ {
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setState(State newState)
+ {
+ State oldState = state;
+ state = newState;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.TRANSITION__STATE, oldState, state));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDbgName()
+ {
+ return dbgName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbgName(String newDbgName)
+ {
+ String oldDbgName = dbgName;
+ dbgName = newDbgName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatesPackage.TRANSITION__DBG_NAME, oldDbgName, dbgName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.TRANSITION__EVENT:
+ if (resolve) return getEvent();
+ return basicGetEvent();
+ case StatesPackage.TRANSITION__STATE:
+ if (resolve) return getState();
+ return basicGetState();
+ case StatesPackage.TRANSITION__DBG_NAME:
+ return getDbgName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.TRANSITION__EVENT:
+ setEvent((Event)newValue);
+ return;
+ case StatesPackage.TRANSITION__STATE:
+ setState((State)newValue);
+ return;
+ case StatesPackage.TRANSITION__DBG_NAME:
+ setDbgName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.TRANSITION__EVENT:
+ setEvent((Event)null);
+ return;
+ case StatesPackage.TRANSITION__STATE:
+ setState((State)null);
+ return;
+ case StatesPackage.TRANSITION__DBG_NAME:
+ setDbgName(DBG_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatesPackage.TRANSITION__EVENT:
+ return event != null;
+ case StatesPackage.TRANSITION__STATE:
+ return state != null;
+ case StatesPackage.TRANSITION__DBG_NAME:
+ return DBG_NAME_EDEFAULT == null ? dbgName != null : !DBG_NAME_EDEFAULT.equals(dbgName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer();
+ result.append("Transition: ");
+ result.append(event.getName());
+ result.append(" => ");
+ result.append(state.getName());
+ return result.toString();
+ }
+
+} //TransitionImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/util/StatesAdapterFactory.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/util/StatesAdapterFactory.java
new file mode 100644
index 0000000..a7e204f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/util/StatesAdapterFactory.java
@@ -0,0 +1,256 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.*;
+
+/**
+ * <!-- 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.ocl.tutorial.eclipsecon2011.states.StatesPackage
+ * @generated
+ */
+public class StatesAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StatesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatesAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = StatesPackage.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 StatesSwitch<Adapter> modelSwitch =
+ new StatesSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseModule(Module object)
+ {
+ return createModuleAdapter();
+ }
+ @Override
+ public Adapter caseStatemachine(Statemachine object)
+ {
+ return createStatemachineAdapter();
+ }
+ @Override
+ public Adapter caseEvent(Event object)
+ {
+ return createEventAdapter();
+ }
+ @Override
+ public Adapter caseState(State object)
+ {
+ return createStateAdapter();
+ }
+ @Override
+ public Adapter caseSimpleState(SimpleState object)
+ {
+ return createSimpleStateAdapter();
+ }
+ @Override
+ public Adapter caseCompoundState(CompoundState object)
+ {
+ return createCompoundStateAdapter();
+ }
+ @Override
+ public Adapter caseTransition(Transition object)
+ {
+ return createTransitionAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Module <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Module
+ * @generated
+ */
+ public Adapter createModuleAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine <em>Statemachine</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Statemachine
+ * @generated
+ */
+ public Adapter createStatemachineAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Event <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Event
+ * @generated
+ */
+ public Adapter createEventAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.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.ocl.tutorial.eclipsecon2011.states.State
+ * @generated
+ */
+ public Adapter createStateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.SimpleState <em>Simple 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.ocl.tutorial.eclipsecon2011.states.SimpleState
+ * @generated
+ */
+ public Adapter createSimpleStateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.CompoundState <em>Compound 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.ocl.tutorial.eclipsecon2011.states.CompoundState
+ * @generated
+ */
+ public Adapter createCompoundStateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition <em>Transition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.states.Transition
+ * @generated
+ */
+ public Adapter createTransitionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //StatesAdapterFactory
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/util/StatesSwitch.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/util/StatesSwitch.java
new file mode 100644
index 0000000..d38f015
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/states/util/StatesSwitch.java
@@ -0,0 +1,263 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.states.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.*;
+
+/**
+ * <!-- 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.ocl.tutorial.eclipsecon2011.states.StatesPackage
+ * @generated
+ */
+public class StatesSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StatesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatesSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = StatesPackage.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 StatesPackage.MODULE:
+ {
+ Module module = (Module)theEObject;
+ T result = caseModule(module);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatesPackage.STATEMACHINE:
+ {
+ Statemachine statemachine = (Statemachine)theEObject;
+ T result = caseStatemachine(statemachine);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatesPackage.EVENT:
+ {
+ Event event = (Event)theEObject;
+ T result = caseEvent(event);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatesPackage.STATE:
+ {
+ State state = (State)theEObject;
+ T result = caseState(state);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatesPackage.SIMPLE_STATE:
+ {
+ SimpleState simpleState = (SimpleState)theEObject;
+ T result = caseSimpleState(simpleState);
+ if (result == null) result = caseState(simpleState);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatesPackage.COMPOUND_STATE:
+ {
+ CompoundState compoundState = (CompoundState)theEObject;
+ T result = caseCompoundState(compoundState);
+ if (result == null) result = caseState(compoundState);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatesPackage.TRANSITION:
+ {
+ Transition transition = (Transition)theEObject;
+ T result = caseTransition(transition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModule(Module object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Statemachine</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Statemachine</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStatemachine(Statemachine object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Event</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Event</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEvent(Event object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>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>Simple 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>Simple State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSimpleState(SimpleState object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compound 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>Compound State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompoundState(CompoundState object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransition(Transition object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //StatesSwitch
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/validation/AbstractStatesJavaValidator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/validation/AbstractStatesJavaValidator.java
new file mode 100644
index 0000000..99f107c
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/validation/AbstractStatesJavaValidator.java
@@ -0,0 +1,18 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public class AbstractStatesJavaValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage.eINSTANCE);
+ return result;
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/States.mwe2 b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/States.mwe2
new file mode 100644
index 0000000..1eed47a
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/States.mwe2
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2010 itemis AG (http://www.itemis.eu) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+module org.eclipse.ocl.tutorial.eclipsecon2011.GenerateStates
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/eclipse/ocl/tutorial/eclipsecon2011/States.xtext"
+var file.extensions = "states"
+var projectName = "org.eclipse.ocl.tutorial.eclipsecon2011.states"
+var runtimeProject = "../${projectName}"
+
+Workflow {
+
+ bean = StandaloneSetup {
+ platformUri = "${runtimeProject}/../.."
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}/src-gen"
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}.ui/src-gen"
+ }
+
+ component = Generator {
+ pathRtProject = runtimeProject
+ pathUiProject = "${runtimeProject}.ui"
+ projectNameRt = projectName
+ projectNameUi = "${projectName}.ui"
+ language = {
+ uri = grammarURI
+ fileExtensions = file.extensions
+
+ // Java API to access grammar elements (required by several other fragments)
+ fragment = grammarAccess.GrammarAccessFragment {}
+
+ // Generate java classes for Ecore models
+ fragment = ecore.EcoreGeneratorFragment {}
+
+ // the serialization component
+ fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
+
+ // a custom ResourceFactory for use with EMF
+ fragment = resourceFactory.ResourceFactoryFragment {
+ fileExtensions = file.extensions
+ }
+
+ // the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/ -->
+ fragment = parser.antlr.XtextAntlrGeneratorFragment {}
+
+ // Check based validation
+ fragment = validation.JavaValidatorFragment {}
+
+ // formatter API
+ fragment = formatting.FormatterFragment {}
+
+ // labeling API
+ fragment = labeling.LabelProviderFragment {}
+
+ // outline API
+ fragment = outline.OutlineTreeProviderFragment {}
+ fragment = outline.QuickOutlineFragment {}
+
+ // java-based API for content assistance
+ fragment = contentAssist.JavaBasedContentAssistFragment {}
+ fragment = parser.antlr.XtextAntlrUiGeneratorFragment {}
+ }
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/States.xtext b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/States.xtext
new file mode 100644
index 0000000..3a339f2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/States.xtext
@@ -0,0 +1,49 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: States.xtext,v 1.1 2011/03/12 20:46:05 ewillink Exp $
+ */
+grammar org.eclipse.ocl.tutorial.eclipsecon2011.States with org.eclipse.xtext.common.Terminals
+
+generate states "http://ocl.eclipse.org/tutorial/eclipsecon2011/States"
+
+Module:
+ 'module' name=(STRING|ID)
+ (machines+=Statemachine)*
+;
+
+Statemachine:
+ (initial?='initial')? 'statemachine' name=ID ('value' value=INT)? '{'
+ 'events' (events+=Event)* ';'
+ (states+=State)* '}' ('debug' dbgName=ID)?
+;
+
+Event:
+ name=ID;
+
+State: SimpleState | CompoundState;
+
+SimpleState:
+ (initial?='initial')? 'state' name=ID ('value' value=INT)?
+ '{' (transitions+=Transition)* '}' ('debug' dbgName=ID)?
+;
+
+CompoundState:
+ 'compound' (initial?='initial')? 'state' name=ID 'machine' machine=[Statemachine]
+ '{' (transitions+=Transition)* '}' ('debug' dbgName=ID)?
+;
+
+Transition:
+ event=[Event] '=>' state=[State] ('debug' dbgName=ID)?
+;
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesRuntimeModule.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesRuntimeModule.java
new file mode 100644
index 0000000..77b22e3
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesRuntimeModule.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesRuntimeModule.java,v 1.1 2011/03/12 20:46:05 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class StatesRuntimeModule extends org.eclipse.ocl.tutorial.eclipsecon2011.AbstractStatesRuntimeModule {
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesStandaloneSetup.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesStandaloneSetup.java
new file mode 100644
index 0000000..bb23b02
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/StatesStandaloneSetup.java
@@ -0,0 +1,29 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesStandaloneSetup.java,v 1.1 2011/03/12 20:46:05 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+/**
+ * Initialization support for running Xtext languages
+ * without equinox extension registry
+ */
+public class StatesStandaloneSetup extends StatesStandaloneSetupGenerated{
+
+ public static void doSetup() {
+ new StatesStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+}
+
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/formatting/StatesFormatter.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/formatting/StatesFormatter.java
new file mode 100644
index 0000000..51c7e10
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/formatting/StatesFormatter.java
@@ -0,0 +1,78 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesFormatter.java,v 1.1 2011/03/12 20:46:06 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.formatting;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess.CompoundStateElements;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess.SimpleStateElements;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess.StatemachineElements;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.StatesGrammarAccess.TransitionElements;
+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 StatesFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+
+ c.setAutoLinewrap(120);
+
+ StatesGrammarAccess f = (StatesGrammarAccess) getGrammarAccess();
+
+ {
+ CompoundStateElements a = f.getCompoundStateAccess();
+ c.setLinewrap(2).before(a.getRule());
+ setBraces(c, a.getLeftCurlyBracketKeyword_6(), a.getRightCurlyBracketKeyword_8());
+ }
+ {
+ SimpleStateElements a = f.getSimpleStateAccess();
+ c.setLinewrap(2).before(a.getRule());
+ setBraces(c, a.getLeftCurlyBracketKeyword_4(), a.getRightCurlyBracketKeyword_6());
+ }
+ {
+ StatemachineElements a = f.getStatemachineAccess();
+ c.setLinewrap(2).before(a.getRule());
+ c.setLinewrap(1).before(a.getEventsKeyword_5());
+ c.setNoSpace().before(a.getSemicolonKeyword_7());
+ setBraces(c, a.getLeftCurlyBracketKeyword_4(), a.getRightCurlyBracketKeyword_9());
+ }
+ {
+ TransitionElements a = f.getTransitionAccess();
+ c.setLinewrap(1).before(a.getRule());
+ }
+ { // comments
+ c.setNoLinewrap().before(f.getSL_COMMENTRule());
+ }
+ }
+
+ public void setBraces(FormattingConfig c, Keyword leftBrace, Keyword rightBrace) {
+ c.setIndentation(leftBrace, rightBrace);
+ c.setLinewrap().before(leftBrace);
+ c.setLinewrap().after(leftBrace);
+ c.setLinewrap().before(rightBrace);
+ c.setLinewrap().after(rightBrace);
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/validation/StatesJavaValidator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/validation/StatesJavaValidator.java
new file mode 100644
index 0000000..c9fdc3c
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states/src/org/eclipse/ocl/tutorial/eclipsecon2011/validation/StatesJavaValidator.java
@@ -0,0 +1,34 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: StatesJavaValidator.java,v 1.1 2011/03/12 20:46:06 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.validation;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.ocl.examples.xtext.completeocl.validation.CompleteOCLEObjectValidator;
+import org.eclipse.ocl.tutorial.eclipsecon2011.states.StatesPackage;
+import org.eclipse.xtext.validation.EValidatorRegistrar;
+
+
+public class StatesJavaValidator extends AbstractStatesJavaValidator
+{
+ @Override
+ public void register(EValidatorRegistrar registrar) {
+ super.register(registrar);
+ StatesPackage ePackage = StatesPackage.eINSTANCE;
+ URI oclURI = URI.createPlatformResourceURI("/org.eclipse.ocl.tutorial.eclipsecon2011.states.ocl/model/States.ocl", true);
+ registrar.register(ePackage, new CompleteOCLEObjectValidator(ePackage, oclURI));
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.classpath b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.classpath
new file mode 100644
index 0000000..64c5e31
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.cvsignore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.cvsignore
new file mode 100644
index 0000000..b5f8004
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.cvsignore
@@ -0,0 +1,2 @@
+bin
+build.acceleo
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.project b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.project
new file mode 100644
index 0000000..1f3e5e5
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ocl.tutorial.eclipsecon2011.states2classes</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.acceleo.ide.ui.acceleoBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.settings/org.eclipse.jdt.core.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..d1c0bf9
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/Generate Simple States.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/Generate Simple States.launch
new file mode 100644
index 0000000..8d41677
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/Generate Simple States.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.acceleo.ide.ui.launching.launchConfigurationType">
+<stringAttribute key="org.eclipse.acceleo.ide.ui.ARGUMENTS" value=""/>
+<booleanAttribute key="org.eclipse.acceleo.ide.ui.COMPUTE_PROFILING" value="false"/>
+<booleanAttribute key="org.eclipse.acceleo.ide.ui.COMPUTE_TRACEABILITY" value="false"/>
+<stringAttribute key="org.eclipse.acceleo.ide.ui.LAUNCHING_STRATEGY_DESCRIPTION" value="Acceleo Plug-in Application"/>
+<stringAttribute key="org.eclipse.acceleo.ide.ui.MODEL_PATH" value="/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/simple.states"/>
+<stringAttribute key="org.eclipse.acceleo.ide.ui.TARGET_PATH" value="/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ocl.tutorial.eclipsecon2011.states2classes.files.Generate"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value=""C:/Development/HartLibrary/Workspace3.6.1/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/simple.states" "C:/Development/HartLibrary/runtime-EclipseApplication/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ocl.tutorial.eclipsecon2011.states2classes"/>
+</launchConfiguration>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/META-INF/MANIFEST.MF b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1b24a0d
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Acceleo States2classes Module Runtime Plug-in
+Bundle-SymbolicName: org.eclipse.ocl.tutorial.eclipsecon2011.states2classes
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.ocl.tutorial.eclipsecon2011.states2classes.Activator
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.ocl,
+ org.eclipse.ocl.ecore,
+ org.eclipse.acceleo.model,
+ org.eclipse.acceleo.engine,
+ org.eclipse.ocl.tutorial.eclipsecon2011.states
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Eclipse-LazyStart: true
+Export-Package: org.eclipse.ocl.tutorial.eclipsecon2011.states2classes.files
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/build.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/build.properties
new file mode 100644
index 0000000..a7eaec6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
+customBuildCallbacks = build.acceleo
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/simple.states b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/simple.states
new file mode 100644
index 0000000..e17ab0b
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/simple.states
@@ -0,0 +1,16 @@
+module "simple.states"
+
+statemachine Machine
+{
+ events START STOP;
+
+ initial state Start
+ {
+ START => Start
+ }
+
+ state Stop
+ {
+ STOP => Stop
+ }
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/Activator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/Activator.java
new file mode 100644
index 0000000..1b8f4d4
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/Activator.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2011 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ocl.tutorial.eclipsecon2011.states2classes;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class Activator extends Plugin {
+
+ /**
+ * The plug-in ID.
+ */
+ public static final String PLUGIN_ID = "org.eclipse.ocl.tutorial.eclipsecon2011.states2classes";
+
+ /**
+ * The shared instance.
+ */
+ private static Activator plugin;
+
+ /**
+ * The constructor.
+ */
+ public Activator() {
+ }
+
+ /**{@inheritDoc}
+ *
+ * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /**{@inheritDoc}
+ *
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance.
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java
new file mode 100644
index 0000000..c500757
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java
@@ -0,0 +1,273 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2011 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ocl.tutorial.eclipsecon2011.states2classes.files;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.ocl.tutorial.eclipsecon2011.StatesStandaloneSetup;
+
+/**
+ * Entry point of the 'Generate' generation module.
+ *
+ * @generated
+ */
+public class Generate extends AbstractAcceleoGenerator {
+ /**
+ * The name of the module.
+ *
+ * @generated
+ */
+ public static final String MODULE_FILE_NAME = "generate";
+
+ /**
+ * The name of the templates that are to be generated.
+ *
+ * @generated
+ */
+ public static final String[] TEMPLATE_NAMES = { "generate", };
+
+ /**
+ * Allows the public constructor to be used. Note that a generator created
+ * this way cannot be used to launch generations before one of
+ * {@link #initialize(EObject, File, List)} or
+ * {@link #initialize(URI, File, List)} is called.
+ * <p>
+ * The main reason for this constructor is to allow clients of this
+ * generation to call it from another Java file, as it allows for the
+ * retrieval of {@link #getProperties()} and
+ * {@link #getGenerationListeners()}.
+ * </p>
+ *
+ * @generated
+ */
+ public Generate() {
+ // Empty implementation
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param modelURI
+ * URI where the model on which this generator will be used is located.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+ * the model cannot be loaded.
+ * @generated
+ */
+ public Generate(URI modelURI, File targetFolder,
+ List<? extends Object> arguments) throws IOException {
+ initialize(modelURI, targetFolder, arguments);
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param model
+ * We'll iterate over the content of this element to find Objects matching the first parameter
+ * of the template we need to call.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+ * @generated
+ */
+ public Generate(EObject model, File targetFolder,
+ List<? extends Object> arguments) throws IOException {
+ initialize(model, targetFolder, arguments);
+ }
+
+ /**
+ * This can be used to launch the generation from a standalone application.
+ *
+ * @param args
+ * Arguments of the generation.
+ * @generated
+ */
+ public static void main(String[] args) {
+ try {
+ if (args.length < 2) {
+ System.out.println("Arguments not valid : {model, folder}.");
+ } else {
+ URI modelURI = URI.createFileURI(args[0]);
+ File folder = new File(args[1]);
+ List<String> arguments = new ArrayList<String>();
+ for (int i = 2; i < args.length; i++) {
+ arguments.add(args[i]);
+ }
+ Generate generator = new Generate(modelURI, folder, arguments);
+ generator.doGenerate(new BasicMonitor());
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Launches the generation described by this instance.
+ *
+ * @param monitor
+ * This will be used to display progress information to the user.
+ * @throws IOException
+ * This will be thrown if any of the output files cannot be saved to disk.
+ * @generated
+ */
+ @Override
+ public void doGenerate(Monitor monitor) throws IOException {
+ /*
+ * TODO if you wish to change the generation as a whole, override this.
+ * The default behavior should be sufficient in most cases.
+ */
+ super.doGenerate(monitor);
+ }
+
+ /**
+ * If this generator needs to listen to text generation events, listeners can be returned from here.
+ *
+ * @return List of listeners that are to be notified when text is generated through this launch.
+ * @generated
+ */
+ @Override
+ public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+ List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+ // TODO if you need to listen to generation event, add listeners to the list here
+ return listeners;
+ }
+
+ /**
+ * If you need to change the way files are generated, this is your entry point.
+ * <p>
+ * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates
+ * files on the fly. If you only need to preview the results, return a new
+ * {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of
+ * the running Eclipse and can be used standalone.
+ * </p>
+ * <p>
+ * If you need the file generation to be aware of the workspace (A typical example is when you wanna
+ * override files that are under clear case or any other VCS that could forbid the overriding), then
+ * return a new {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}.
+ * <b>Note</b>, however, that this <b>cannot</b> be used standalone.
+ * </p>
+ * <p>
+ * All three of these default strategies support merging through JMerge.
+ * </p>
+ *
+ * @return The generation strategy that is to be used for generations launched through this launcher.
+ * @generated
+ */
+ public IAcceleoGenerationStrategy getGenerationStrategy() {
+ return super.getGenerationStrategy();
+ }
+
+ /**
+ * This will be called in order to find and load the module that will be launched through this launcher.
+ * We expect this name not to contain file extension, and the module to be located beside the launcher.
+ *
+ * @return The name of the module that is to be launched.
+ * @generated
+ */
+ @Override
+ public String getModuleName() {
+ return MODULE_FILE_NAME;
+ }
+
+ /**
+ * If the module(s) called by this launcher require properties files, return their qualified path from
+ * here.Take note that the first added properties files will take precedence over subsequent ones if they
+ * contain conflicting keys.
+ * <p>
+ * Properties need to be in source folders, the path that we expect to get as a result of this call are of
+ * the form <package>.<properties file name without extension>. For example, if you have a file
+ * named "messages.properties" in package "org.eclipse.acceleo.sample", the path that needs be returned by
+ * a call to {@link #getProperties()} is "org.eclipse.acceleo.sample.messages".
+ * </p>
+ *
+ * @return The list of properties file we need to add to the generation context.
+ * @see java.util.ResourceBundle#getBundle(String)
+ * @generated
+ */
+ @Override
+ public List<String> getProperties() {
+ List<String> propertiesFiles = super.getProperties();
+ /*
+ * TODO if your generation module requires access to properties files,
+ * add their qualified path to the list here. Properties files are
+ * expected to be in source folders, and the path here to be the
+ * qualified path as if referring to a Java class. For example, if you
+ * have a file named "messages.properties" in package
+ * "org.eclipse.acceleo.sample", the path that needs be added to this
+ * list is "org.eclipse.acceleo.sample.messages".
+ */
+ return propertiesFiles;
+ }
+
+ /**
+ * This will be used to get the list of templates that are to be launched by this launcher.
+ *
+ * @return The list of templates to call on the module {@link #getModuleName()}.
+ * @generated
+ */
+ @Override
+ public String[] getTemplateNames() {
+ return TEMPLATE_NAMES;
+ }
+
+ /**
+ * This can be used to update the resource set's package registry with all needed EPackages.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated NOT
+ */
+ @Override
+ public void registerPackages(ResourceSet resourceSet) {
+ super.registerPackages(resourceSet);
+ StatesStandaloneSetup.doSetup();
+// resourceSet.getPackageRegistry().put(org.eclipse.xtext.example.fowlerdsl.FowlerdslPackage.eINSTANCE.getNsURI(), org.eclipse.xtext.example.fowlerdsl.FowlerdslPackage.eINSTANCE);
+ // TODO If you need additional package registrations, do them here. The following line is an example for UML.
+ // resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+ }
+
+ /**
+ * This can be used to update the resource set's resource factory registry with all needed factories.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerResourceFactories(ResourceSet resourceSet) {
+ super.registerResourceFactories(resourceSet);
+ // TODO If you need additional resource factories registrations, do them here. The following line is an example for UML.
+ // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/generate.mtl b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/generate.mtl
new file mode 100644
index 0000000..a8c4415
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/generate.mtl
@@ -0,0 +1,86 @@
+[comment encoding = UTF-8 /]
+[module generate('http://ocl.eclipse.org/tutorial/eclipsecon2011/States')/]
+
+[query getEventMethodName(v : Event) : String = 'do' + v.name/]
+[query getInitialState(e : Statemachine) : State =
+ e.states->any(initial)/]
+[query getPackageName(m : Module) : String = m.name/]
+[query getStateClassName(s : State) : String = s.name/]
+[query getStateEnumName(s : State) : String = 'STATE_' + s.name/]
+[query getStateMachineClassName(e : Statemachine) : String = e.name/]
+
+[template public generate(m : Module)]
+[comment @main /]
+[for (e : Statemachine | m.machines)]
+[file (e.name + '.java', false, 'UTF-8')]
+[generateStatemachineClass(m, e)/]
+[/file]
+[for (s : State | e.states)]
+[file (s.name + '.java', false, 'UTF-8')]
+[generateStateClass(m, e, s)/]
+[/file]
+[/for]
+[/for]
+[/template]
+
+[template public generateStatemachineClass(m : Module, e : Statemachine)]
+package [m.getPackageName()/];
+
+public class [e.getStateMachineClassName()/]
+{
+ public interface State
+ {
+[for (v : Event | e.events)]
+ public void [v.getEventMethodName()/]();
+[/for]
+
+ enum STATES
+ {
+[for (s : State | e.states) separator (',\n') after('\n')]
+ [s.getStateEnumName()/][/for]
+ }
+ }
+
+ private final State['[]'/] states = new State['[]'/] {
+[for (s : State | e.states) separator (',\n') after('\n')]
+ new [s.getStateClassName()/](this)[/for]
+ };
+
+ private State state;
+
+ public [e.getStateMachineClassName()/]() {
+ setState(State.STATES.[e.getInitialState().getStateEnumName()/]);
+ }
+
+ public void setState(State.STATES state) {
+ this.state = states['['/]state.ordinal()];
+ }
+
+[for (v : Event | e.events)]
+ public void [v.getEventMethodName()/]() { state.[v.getEventMethodName()/](); }
+[/for]
+}
+[/template]
+
+[template public generateStateClass(m : Module, e : Statemachine, s : State)]
+package [m.getPackageName()/];
+
+public class [s.name/] implements [e.name + '.State'/]
+{
+}
+[/template]
+
+[template public generateStateClass(m : Module, e : Statemachine, s : SimpleState)]
+package [m.getPackageName()/];
+
+public class [s.getStateClassName()/] implements [e.name + '.State'/] {
+ private final [e.getStateMachineClassName()/] sm;
+ public [s.getStateClassName()/]([e.getStateMachineClassName()/] sm) {
+ this.sm = sm;
+ }
+[for (t : Transition | s.transitions)]
+ public void [t.event.getEventMethodName()/]()
+ { sm.setState(STATES.[t.state.getStateEnumName()/]); }
+[/for]
+}
+[/template]