Просмотр исходного кода

Changed SText:
- removed clocks
- divided possible Declarations definitions
- renamed EntryRules to StatechartSpecification, StateSpecification, TransitionSpecification

Andreas Mülder 14 лет назад
Родитель
Сommit
68bfbc8029
58 измененных файлов с 12688 добавлено и 13470 удалено
  1. 3 3
      plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore
  2. 2 2
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Reaction.java
  3. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ScopedElement.java
  4. 236 367
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StateImpl.java
  5. 3 3
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/sgraph.ecore
  6. 0 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/naming/SGraphNameProvider.java
  7. 5 5
      plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/StateInjectionService.java
  8. 4 4
      plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/StatechartInjectionService.java
  9. 8 7
      plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/TransitionInjectionService.java
  10. 21 16
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/AbstractSTextProposalProvider.java
  11. 11 9
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/STextParser.java
  12. 188 290
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g
  13. 67 69
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.tokens
  14. 443 482
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSTextLexer.java
  15. 6546 6744
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSTextParser.java
  16. 2 4
      plugins/org.yakindu.sct.model.stext.ui/src/org/yakindu/sct/model/stext/ui/contentassist/STextProposalProvider.java
  17. 10 8
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore
  18. 8 7
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.genmodel
  19. 117 118
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.xmi
  20. 296 366
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parseTreeConstruction/STextParsetreeConstructor.java
  21. 206 205
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g
  22. 104 106
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.tokens
  23. 582 620
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSTextLexer.java
  24. 3009 3035
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSTextParser.java
  25. 165 159
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/services/STextGrammarAccess.java
  26. 0 23
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/Clock.java
  27. 3 3
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StateRoot.java
  28. 7 7
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StateDeclaration.java
  29. 3 3
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StatechartRoot.java
  30. 9 9
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StatechartDefinition.java
  31. 9 18
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StextFactory.java
  32. 121 141
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StextPackage.java
  33. 1 1
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TransitionReaction.java
  34. 3 3
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TransitionRoot.java
  35. 55 0
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TransitionSpecification.java
  36. 0 23
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TransitionStatement.java
  37. 0 48
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/ClockImpl.java
  38. 8 8
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StateRootImpl.java
  39. 16 16
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StateDeclarationImpl.java
  40. 8 8
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StatechartRootImpl.java
  41. 19 19
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StatechartDefinitionImpl.java
  42. 12 24
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StextFactoryImpl.java
  43. 45 57
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StextPackageImpl.java
  44. 2 187
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TransitionReactionImpl.java
  45. 8 8
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TransitionRootImpl.java
  46. 198 0
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TransitionSpecificationImpl.java
  47. 0 48
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TransitionStatementImpl.java
  48. 15 35
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/util/StextAdapterFactory.java
  49. 18 44
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/util/StextSwitch.java
  50. 74 95
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/SText.xtext
  51. 2 2
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java
  52. 6 0
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/runtime/impl/ExecutionContextImpl.java
  53. 2 2
      plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/StateAntlrParser.java
  54. 1 1
      plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/StateContentAssistParser.java
  55. 2 2
      plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/StatechartAntlrParser.java
  56. 1 1
      plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/StatechartContentAssistParser.java
  57. 2 2
      plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/TransitionAntlrParser.java
  58. 1 1
      plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/TransitionContentAssistParser.java

+ 3 - 3
plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore

@@ -60,9 +60,9 @@
   <eClassifiers xsi:type="ecore:EClass" name="Declaration" abstract="true" eSuperTypes="#//NamedElement"/>
   <eClassifiers xsi:type="ecore:EClass" name="Reaction" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" eType="#//Trigger"
-        containment="true"/>
+        transient="true" containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="effect" eType="#//Effect"
-        containment="true"/>
+        transient="true" containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="EntryKind">
     <eLiterals name="initial" literal="INITIAL"/>
@@ -87,7 +87,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ScopedElement" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="scopes" upperBound="-1"
-        eType="#//Scope" containment="true"/>
+        eType="#//Scope" transient="true" containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Synchronization" eSuperTypes="#//Pseudostate"/>

+ 2 - 2
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Reaction.java

@@ -48,7 +48,7 @@ public interface Reaction extends EObject {
 	 * @return the value of the '<em>Trigger</em>' containment reference.
 	 * @see #setTrigger(Trigger)
 	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getReaction_Trigger()
-	 * @model containment="true"
+	 * @model containment="true" transient="true"
 	 * @generated
 	 */
 	Trigger getTrigger();
@@ -74,7 +74,7 @@ public interface Reaction extends EObject {
 	 * @return the value of the '<em>Effect</em>' containment reference.
 	 * @see #setEffect(Effect)
 	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getReaction_Effect()
-	 * @model containment="true"
+	 * @model containment="true" transient="true"
 	 * @generated
 	 */
 	Effect getEffect();

+ 1 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ScopedElement.java

@@ -49,7 +49,7 @@ public interface ScopedElement extends EObject {
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Scopes</em>' containment reference list.
 	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getScopedElement_Scopes()
-	 * @model containment="true"
+	 * @model containment="true" transient="true"
 	 * @generated
 	 */
 	EList<Scope> getScopes();

Разница между файлами не показана из-за своего большого размера
+ 236 - 367
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StateImpl.java


+ 3 - 3
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/sgraph.ecore

@@ -59,9 +59,9 @@
   <eClassifiers xsi:type="ecore:EClass" name="Declaration" abstract="true" eSuperTypes="#//NamedElement"/>
   <eClassifiers xsi:type="ecore:EClass" name="Reaction" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" eType="#//Trigger"
-        containment="true"/>
+        transient="true" containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="effect" eType="#//Effect"
-        containment="true"/>
+        transient="true" containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="EntryKind">
     <eLiterals name="initial" literal="INITIAL"/>
@@ -86,7 +86,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ScopedElement" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="scopes" upperBound="-1"
-        eType="#//Scope" containment="true"/>
+        eType="#//Scope" transient="true" containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Synchronization" eSuperTypes="#//Pseudostate"/>

+ 0 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/naming/SGraphNameProvider.java

@@ -11,7 +11,6 @@
 package org.yakindu.sct.model.sgraph.naming;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 
 import org.eclipse.emf.ecore.EObject;

+ 5 - 5
plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/StateInjectionService.java

@@ -18,7 +18,7 @@ import org.yakindu.sct.model.sgraph.SGraphFactory;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Scope;
 import org.yakindu.sct.model.sgraph.State;
-import org.yakindu.sct.model.stext.stext.SimpleScope;
+import org.yakindu.sct.model.stext.stext.StateSpecification;
 
 import de.itemis.xtext.utils.gmf.resource.AbstractXtextMemberInjectionService;
 import de.itemis.xtext.utils.gmf.resource.IMemberInjectionService;
@@ -31,7 +31,7 @@ import de.itemis.xtext.utils.gmf.resource.IMemberInjectionService;
  * 
  */
 public class StateInjectionService extends
-		AbstractXtextMemberInjectionService<State, SimpleScope> {
+		AbstractXtextMemberInjectionService<State, StateSpecification> {
 
 	@Override
 	public String getExpression(State object) {
@@ -40,13 +40,13 @@ public class StateInjectionService extends
 
 	@Override
 	public String getParserRule() {
-		return SimpleScope.class.getSimpleName();
+		return StateSpecification.class.getSimpleName();
 	}
 
 	@Override
-	public void setFeatures(State original, SimpleScope rootAST) {
+	public void setFeatures(State original, StateSpecification rootAST) {
 		Scope localScope = SGraphFactory.eINSTANCE.createScope();
-		EList<Declaration> declarations = rootAST.getDeclarations();
+		EList<Declaration> declarations = rootAST.getScope().getDeclarations();
 		localScope.getDeclarations().addAll(declarations);
 		original.getScopes().clear();
 		original.getScopes().add(localScope);

+ 4 - 4
plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/StatechartInjectionService.java

@@ -17,7 +17,7 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Scope;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.model.stext.stext.StatechartDefinition;
+import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 
 import de.itemis.xtext.utils.gmf.resource.AbstractXtextMemberInjectionService;
 import de.itemis.xtext.utils.gmf.resource.IMemberInjectionService;
@@ -30,14 +30,14 @@ import de.itemis.xtext.utils.gmf.resource.IMemberInjectionService;
  * 
  */
 public class StatechartInjectionService extends
-		AbstractXtextMemberInjectionService<Statechart, StatechartDefinition> {
+		AbstractXtextMemberInjectionService<Statechart, StatechartSpecification> {
 
 	public boolean isServiceFor(EObject object) {
 		return object instanceof Statechart;
 	}
 
 	@Override
-	public void setFeatures(Statechart original, StatechartDefinition rootAST) {
+	public void setFeatures(Statechart original, StatechartSpecification rootAST) {
 		EList<Scope> definitionScopes = rootAST.getDefinitionScopes();
 		original.getScopes().clear();
 		original.setNamespace(rootAST.getNamespace());
@@ -50,7 +50,7 @@ public class StatechartInjectionService extends
 
 	@Override
 	public String getParserRule() {
-		return StatechartDefinition.class.getSimpleName();
+		return StatechartSpecification.class.getSimpleName();
 	}
 	
 

+ 8 - 7
plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/TransitionInjectionService.java

@@ -14,7 +14,7 @@ import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Transition;
-import org.yakindu.sct.model.stext.stext.TransitionReaction;
+import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 
 import de.itemis.xtext.utils.gmf.resource.AbstractXtextMemberInjectionService;
 
@@ -23,12 +23,13 @@ import de.itemis.xtext.utils.gmf.resource.AbstractXtextMemberInjectionService;
  * @author andreas muelder (andreas.muelder@itemis.de)
  * 
  */
-public class TransitionInjectionService extends
-		AbstractXtextMemberInjectionService<Transition, TransitionReaction> {
+public class TransitionInjectionService
+		extends
+		AbstractXtextMemberInjectionService<Transition, TransitionSpecification> {
 
 	@Override
 	public String getParserRule() {
-		return TransitionReaction.class.getSimpleName();
+		return TransitionSpecification.class.getSimpleName();
 	}
 
 	@Override
@@ -37,9 +38,9 @@ public class TransitionInjectionService extends
 	}
 
 	@Override
-	public void setFeatures(Transition original, TransitionReaction rootAST) {
-		original.setTrigger(rootAST.getTrigger());
-		original.setEffect(rootAST.getEffect());
+	public void setFeatures(Transition original, TransitionSpecification rootAST) {
+		original.setTrigger(rootAST.getReaction().getTrigger());
+		original.setEffect(rootAST.getReaction().getEffect());
 
 	}
 

+ 21 - 16
plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/AbstractSTextProposalProvider.java

@@ -29,26 +29,37 @@ public class AbstractSTextProposalProvider extends TerminalsProposalProvider {
 	public void completeTransitionRoot_Def(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeStatechartDefinition_Namespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeStatechartSpecification_Namespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeStatechartDefinition_DefinitionScopes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeStatechartSpecification_DefinitionScopes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeStateDeclaration_Scope(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeStateSpecification_Scope(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSimpleScope_Declarations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeTransitionSpecification_Reaction(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeStateScope_Declarations(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);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor);
+	}
 	public void completeInterfaceScope_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeInterfaceScope_Declarations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(3)), context, acceptor);
 	}
 	public void completeInternalScope_Declarations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor);
+		completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(3)), context, acceptor);
 	}
 	public void completeEventDefinition_Direction(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
@@ -83,9 +94,6 @@ public class AbstractSTextProposalProvider extends TerminalsProposalProvider {
 	public void completeVariableDefinition_InitialValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeClock_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
 	public void completeOperation_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -270,19 +278,19 @@ public class AbstractSTextProposalProvider extends TerminalsProposalProvider {
 	public void complete_TransitionRoot(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_StatechartDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_StatechartSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_StateDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_StateSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_TransitionStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_TransitionSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_Scope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_SimpleScope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_StateScope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_StatechartScope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -309,9 +317,6 @@ public class AbstractSTextProposalProvider extends TerminalsProposalProvider {
 	public void complete_VariableDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_Clock(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
 	public void complete_Operation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}

+ 11 - 9
plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/STextParser.java

@@ -39,7 +39,10 @@ public class STextParser extends AbstractContentAssistParser {
 				{
 					put(grammarAccess.getDefRootAccess().getAlternatives(), "rule__DefRoot__Alternatives");
 					put(grammarAccess.getScopeAccess().getAlternatives(), "rule__Scope__Alternatives");
+					put(grammarAccess.getStateScopeAccess().getDeclarationsAlternatives_1_0(), "rule__StateScope__DeclarationsAlternatives_1_0");
 					put(grammarAccess.getStatechartScopeAccess().getAlternatives(), "rule__StatechartScope__Alternatives");
+					put(grammarAccess.getInterfaceScopeAccess().getDeclarationsAlternatives_4_0(), "rule__InterfaceScope__DeclarationsAlternatives_4_0");
+					put(grammarAccess.getInternalScopeAccess().getDeclarationsAlternatives_3_0(), "rule__InternalScope__DeclarationsAlternatives_3_0");
 					put(grammarAccess.getDeclarationAccess().getAlternatives(), "rule__Declaration__Alternatives");
 					put(grammarAccess.getReactionAccess().getAlternatives(), "rule__Reaction__Alternatives");
 					put(grammarAccess.getReactionTriggerAccess().getAlternatives_1(), "rule__ReactionTrigger__Alternatives_1");
@@ -66,9 +69,9 @@ public class STextParser extends AbstractContentAssistParser {
 					put(grammarAccess.getStatechartRootAccess().getGroup(), "rule__StatechartRoot__Group__0");
 					put(grammarAccess.getStateRootAccess().getGroup(), "rule__StateRoot__Group__0");
 					put(grammarAccess.getTransitionRootAccess().getGroup(), "rule__TransitionRoot__Group__0");
-					put(grammarAccess.getStatechartDefinitionAccess().getGroup(), "rule__StatechartDefinition__Group__0");
-					put(grammarAccess.getStatechartDefinitionAccess().getGroup_1(), "rule__StatechartDefinition__Group_1__0");
-					put(grammarAccess.getSimpleScopeAccess().getGroup(), "rule__SimpleScope__Group__0");
+					put(grammarAccess.getStatechartSpecificationAccess().getGroup(), "rule__StatechartSpecification__Group__0");
+					put(grammarAccess.getStatechartSpecificationAccess().getGroup_1(), "rule__StatechartSpecification__Group_1__0");
+					put(grammarAccess.getStateScopeAccess().getGroup(), "rule__StateScope__Group__0");
 					put(grammarAccess.getInterfaceScopeAccess().getGroup(), "rule__InterfaceScope__Group__0");
 					put(grammarAccess.getInternalScopeAccess().getGroup(), "rule__InternalScope__Group__0");
 					put(grammarAccess.getEventDefinitionAccess().getGroup(), "rule__EventDefinition__Group__0");
@@ -77,7 +80,6 @@ public class STextParser extends AbstractContentAssistParser {
 					put(grammarAccess.getEventDerivationAccess().getGroup_2(), "rule__EventDerivation__Group_2__0");
 					put(grammarAccess.getVariableDefinitionAccess().getGroup(), "rule__VariableDefinition__Group__0");
 					put(grammarAccess.getVariableDefinitionAccess().getGroup_6(), "rule__VariableDefinition__Group_6__0");
-					put(grammarAccess.getClockAccess().getGroup(), "rule__Clock__Group__0");
 					put(grammarAccess.getOperationAccess().getGroup(), "rule__Operation__Group__0");
 					put(grammarAccess.getOperationAccess().getGroup_4(), "rule__Operation__Group_4__0");
 					put(grammarAccess.getOperationAccess().getGroup_4_1(), "rule__Operation__Group_4_1__0");
@@ -150,10 +152,11 @@ public class STextParser extends AbstractContentAssistParser {
 					put(grammarAccess.getStatechartRootAccess().getDefAssignment_1(), "rule__StatechartRoot__DefAssignment_1");
 					put(grammarAccess.getStateRootAccess().getDefAssignment_1(), "rule__StateRoot__DefAssignment_1");
 					put(grammarAccess.getTransitionRootAccess().getDefAssignment_1(), "rule__TransitionRoot__DefAssignment_1");
-					put(grammarAccess.getStatechartDefinitionAccess().getNamespaceAssignment_1_1(), "rule__StatechartDefinition__NamespaceAssignment_1_1");
-					put(grammarAccess.getStatechartDefinitionAccess().getDefinitionScopesAssignment_2(), "rule__StatechartDefinition__DefinitionScopesAssignment_2");
-					put(grammarAccess.getStateDeclarationAccess().getScopeAssignment(), "rule__StateDeclaration__ScopeAssignment");
-					put(grammarAccess.getSimpleScopeAccess().getDeclarationsAssignment_1(), "rule__SimpleScope__DeclarationsAssignment_1");
+					put(grammarAccess.getStatechartSpecificationAccess().getNamespaceAssignment_1_1(), "rule__StatechartSpecification__NamespaceAssignment_1_1");
+					put(grammarAccess.getStatechartSpecificationAccess().getDefinitionScopesAssignment_2(), "rule__StatechartSpecification__DefinitionScopesAssignment_2");
+					put(grammarAccess.getStateSpecificationAccess().getScopeAssignment(), "rule__StateSpecification__ScopeAssignment");
+					put(grammarAccess.getTransitionSpecificationAccess().getReactionAssignment(), "rule__TransitionSpecification__ReactionAssignment");
+					put(grammarAccess.getStateScopeAccess().getDeclarationsAssignment_1(), "rule__StateScope__DeclarationsAssignment_1");
 					put(grammarAccess.getInterfaceScopeAccess().getNameAssignment_2(), "rule__InterfaceScope__NameAssignment_2");
 					put(grammarAccess.getInterfaceScopeAccess().getDeclarationsAssignment_4(), "rule__InterfaceScope__DeclarationsAssignment_4");
 					put(grammarAccess.getInternalScopeAccess().getDeclarationsAssignment_3(), "rule__InternalScope__DeclarationsAssignment_3");
@@ -168,7 +171,6 @@ public class STextParser extends AbstractContentAssistParser {
 					put(grammarAccess.getVariableDefinitionAccess().getNameAssignment_3(), "rule__VariableDefinition__NameAssignment_3");
 					put(grammarAccess.getVariableDefinitionAccess().getTypeAssignment_5(), "rule__VariableDefinition__TypeAssignment_5");
 					put(grammarAccess.getVariableDefinitionAccess().getInitialValueAssignment_6_1(), "rule__VariableDefinition__InitialValueAssignment_6_1");
-					put(grammarAccess.getClockAccess().getNameAssignment_2(), "rule__Clock__NameAssignment_2");
 					put(grammarAccess.getOperationAccess().getNameAssignment_2(), "rule__Operation__NameAssignment_2");
 					put(grammarAccess.getOperationAccess().getParamTypesAssignment_4_0(), "rule__Operation__ParamTypesAssignment_4_0");
 					put(grammarAccess.getOperationAccess().getParamTypesAssignment_4_1_1(), "rule__Operation__ParamTypesAssignment_4_1_1");

+ 188 - 290
plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g

@@ -198,25 +198,25 @@ finally {
 
 
 
-// Entry rule entryRuleStatechartDefinition
-entryRuleStatechartDefinition 
+// Entry rule entryRuleStatechartSpecification
+entryRuleStatechartSpecification 
 :
-{ before(grammarAccess.getStatechartDefinitionRule()); }
-	 ruleStatechartDefinition
-{ after(grammarAccess.getStatechartDefinitionRule()); } 
+{ before(grammarAccess.getStatechartSpecificationRule()); }
+	 ruleStatechartSpecification
+{ after(grammarAccess.getStatechartSpecificationRule()); } 
 	 EOF 
 ;
 
-// Rule StatechartDefinition
-ruleStatechartDefinition
+// Rule StatechartSpecification
+ruleStatechartSpecification
     @init {
 		int stackSize = keepStackSize();
     }
 	:
 (
-{ before(grammarAccess.getStatechartDefinitionAccess().getGroup()); }
-(rule__StatechartDefinition__Group__0)
-{ after(grammarAccess.getStatechartDefinitionAccess().getGroup()); }
+{ before(grammarAccess.getStatechartSpecificationAccess().getGroup()); }
+(rule__StatechartSpecification__Group__0)
+{ after(grammarAccess.getStatechartSpecificationAccess().getGroup()); }
 )
 
 ;
@@ -226,25 +226,25 @@ finally {
 
 
 
-// Entry rule entryRuleStateDeclaration
-entryRuleStateDeclaration 
+// Entry rule entryRuleStateSpecification
+entryRuleStateSpecification 
 :
-{ before(grammarAccess.getStateDeclarationRule()); }
-	 ruleStateDeclaration
-{ after(grammarAccess.getStateDeclarationRule()); } 
+{ before(grammarAccess.getStateSpecificationRule()); }
+	 ruleStateSpecification
+{ after(grammarAccess.getStateSpecificationRule()); } 
 	 EOF 
 ;
 
-// Rule StateDeclaration
-ruleStateDeclaration
+// Rule StateSpecification
+ruleStateSpecification
     @init {
 		int stackSize = keepStackSize();
     }
 	:
 (
-{ before(grammarAccess.getStateDeclarationAccess().getScopeAssignment()); }
-(rule__StateDeclaration__ScopeAssignment)
-{ after(grammarAccess.getStateDeclarationAccess().getScopeAssignment()); }
+{ before(grammarAccess.getStateSpecificationAccess().getScopeAssignment()); }
+(rule__StateSpecification__ScopeAssignment)
+{ after(grammarAccess.getStateSpecificationAccess().getScopeAssignment()); }
 )
 
 ;
@@ -254,25 +254,25 @@ finally {
 
 
 
-// Entry rule entryRuleTransitionStatement
-entryRuleTransitionStatement 
+// Entry rule entryRuleTransitionSpecification
+entryRuleTransitionSpecification 
 :
-{ before(grammarAccess.getTransitionStatementRule()); }
-	 ruleTransitionStatement
-{ after(grammarAccess.getTransitionStatementRule()); } 
+{ before(grammarAccess.getTransitionSpecificationRule()); }
+	 ruleTransitionSpecification
+{ after(grammarAccess.getTransitionSpecificationRule()); } 
 	 EOF 
 ;
 
-// Rule TransitionStatement
-ruleTransitionStatement
+// Rule TransitionSpecification
+ruleTransitionSpecification
     @init {
 		int stackSize = keepStackSize();
     }
 	:
 (
-{ before(grammarAccess.getTransitionStatementAccess().getTransitionReactionParserRuleCall()); }
-	ruleTransitionReaction
-{ after(grammarAccess.getTransitionStatementAccess().getTransitionReactionParserRuleCall()); }
+{ before(grammarAccess.getTransitionSpecificationAccess().getReactionAssignment()); }
+(rule__TransitionSpecification__ReactionAssignment)
+{ after(grammarAccess.getTransitionSpecificationAccess().getReactionAssignment()); }
 )
 
 ;
@@ -284,25 +284,25 @@ finally {
 
 
 
-// Entry rule entryRuleSimpleScope
-entryRuleSimpleScope 
+// Entry rule entryRuleStateScope
+entryRuleStateScope 
 :
-{ before(grammarAccess.getSimpleScopeRule()); }
-	 ruleSimpleScope
-{ after(grammarAccess.getSimpleScopeRule()); } 
+{ before(grammarAccess.getStateScopeRule()); }
+	 ruleStateScope
+{ after(grammarAccess.getStateScopeRule()); } 
 	 EOF 
 ;
 
-// Rule SimpleScope
-ruleSimpleScope
+// Rule StateScope
+ruleStateScope
     @init {
 		int stackSize = keepStackSize();
     }
 	:
 (
-{ before(grammarAccess.getSimpleScopeAccess().getGroup()); }
-(rule__SimpleScope__Group__0)
-{ after(grammarAccess.getSimpleScopeAccess().getGroup()); }
+{ before(grammarAccess.getStateScopeAccess().getGroup()); }
+(rule__StateScope__Group__0)
+{ after(grammarAccess.getStateScopeAccess().getGroup()); }
 )
 
 ;
@@ -396,32 +396,6 @@ finally {
 
 
 
-// Entry rule entryRuleDeclaration
-entryRuleDeclaration 
-:
-{ before(grammarAccess.getDeclarationRule()); }
-	 ruleDeclaration
-{ after(grammarAccess.getDeclarationRule()); } 
-	 EOF 
-;
-
-// Rule Declaration
-ruleDeclaration
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getDeclarationAccess().getAlternatives()); }
-(rule__Declaration__Alternatives)
-{ after(grammarAccess.getDeclarationAccess().getAlternatives()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 
 
 // Entry rule entryRuleEventDefinition
@@ -508,34 +482,6 @@ finally {
 
 
 
-// Entry rule entryRuleClock
-entryRuleClock 
-:
-{ before(grammarAccess.getClockRule()); }
-	 ruleClock
-{ after(grammarAccess.getClockRule()); } 
-	 EOF 
-;
-
-// Rule Clock
-ruleClock
-    @init {
-		int stackSize = keepStackSize();
-    }
-	:
-(
-{ before(grammarAccess.getClockAccess().getGroup()); }
-(rule__Clock__Group__0)
-{ after(grammarAccess.getClockAccess().getGroup()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
 // Entry rule entryRuleOperation
 entryRuleOperation 
 :
@@ -2186,6 +2132,34 @@ finally {
 }
 
 
+rule__StateScope__DeclarationsAlternatives_1_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStateScopeAccess().getDeclarationsLocalReactionParserRuleCall_1_0_0()); }
+	ruleLocalReaction
+{ after(grammarAccess.getStateScopeAccess().getDeclarationsLocalReactionParserRuleCall_1_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getStateScopeAccess().getDeclarationsEntrypointParserRuleCall_1_0_1()); }
+	ruleEntrypoint
+{ after(grammarAccess.getStateScopeAccess().getDeclarationsEntrypointParserRuleCall_1_0_1()); }
+)
+
+    |(
+{ before(grammarAccess.getStateScopeAccess().getDeclarationsExitpointParserRuleCall_1_0_2()); }
+	ruleExitpoint
+{ after(grammarAccess.getStateScopeAccess().getDeclarationsExitpointParserRuleCall_1_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__StatechartScope__Alternatives
     @init {
 		int stackSize = keepStackSize();
@@ -2208,51 +2182,67 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__Declaration__Alternatives
+rule__InterfaceScope__DeclarationsAlternatives_4_0
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getDeclarationAccess().getEventDefinitionParserRuleCall_0()); }
+{ before(grammarAccess.getInterfaceScopeAccess().getDeclarationsEventDefinitionParserRuleCall_4_0_0()); }
 	ruleEventDefinition
-{ after(grammarAccess.getDeclarationAccess().getEventDefinitionParserRuleCall_0()); }
+{ after(grammarAccess.getInterfaceScopeAccess().getDeclarationsEventDefinitionParserRuleCall_4_0_0()); }
 )
 
     |(
-{ before(grammarAccess.getDeclarationAccess().getVariableDefinitionParserRuleCall_1()); }
+{ before(grammarAccess.getInterfaceScopeAccess().getDeclarationsVariableDefinitionParserRuleCall_4_0_1()); }
 	ruleVariableDefinition
-{ after(grammarAccess.getDeclarationAccess().getVariableDefinitionParserRuleCall_1()); }
+{ after(grammarAccess.getInterfaceScopeAccess().getDeclarationsVariableDefinitionParserRuleCall_4_0_1()); }
 )
 
     |(
-{ before(grammarAccess.getDeclarationAccess().getClockParserRuleCall_2()); }
-	ruleClock
-{ after(grammarAccess.getDeclarationAccess().getClockParserRuleCall_2()); }
+{ before(grammarAccess.getInterfaceScopeAccess().getDeclarationsEntrypointParserRuleCall_4_0_2()); }
+	ruleEntrypoint
+{ after(grammarAccess.getInterfaceScopeAccess().getDeclarationsEntrypointParserRuleCall_4_0_2()); }
 )
 
     |(
-{ before(grammarAccess.getDeclarationAccess().getOperationParserRuleCall_3()); }
-	ruleOperation
-{ after(grammarAccess.getDeclarationAccess().getOperationParserRuleCall_3()); }
+{ before(grammarAccess.getInterfaceScopeAccess().getDeclarationsExitpointParserRuleCall_4_0_3()); }
+	ruleExitpoint
+{ after(grammarAccess.getInterfaceScopeAccess().getDeclarationsExitpointParserRuleCall_4_0_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__InternalScope__DeclarationsAlternatives_3_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getInternalScopeAccess().getDeclarationsEventDefinitionParserRuleCall_3_0_0()); }
+	ruleEventDefinition
+{ after(grammarAccess.getInternalScopeAccess().getDeclarationsEventDefinitionParserRuleCall_3_0_0()); }
 )
 
     |(
-{ before(grammarAccess.getDeclarationAccess().getLocalReactionParserRuleCall_4()); }
-	ruleLocalReaction
-{ after(grammarAccess.getDeclarationAccess().getLocalReactionParserRuleCall_4()); }
+{ before(grammarAccess.getInternalScopeAccess().getDeclarationsVariableDefinitionParserRuleCall_3_0_1()); }
+	ruleVariableDefinition
+{ after(grammarAccess.getInternalScopeAccess().getDeclarationsVariableDefinitionParserRuleCall_3_0_1()); }
 )
 
     |(
-{ before(grammarAccess.getDeclarationAccess().getEntrypointParserRuleCall_5()); }
-	ruleEntrypoint
-{ after(grammarAccess.getDeclarationAccess().getEntrypointParserRuleCall_5()); }
+{ before(grammarAccess.getInternalScopeAccess().getDeclarationsOperationParserRuleCall_3_0_2()); }
+	ruleOperation
+{ after(grammarAccess.getInternalScopeAccess().getDeclarationsOperationParserRuleCall_3_0_2()); }
 )
 
     |(
-{ before(grammarAccess.getDeclarationAccess().getExitpointParserRuleCall_6()); }
-	ruleExitpoint
-{ after(grammarAccess.getDeclarationAccess().getExitpointParserRuleCall_6()); }
+{ before(grammarAccess.getInternalScopeAccess().getDeclarationsLocalReactionParserRuleCall_3_0_3()); }
+	ruleLocalReaction
+{ after(grammarAccess.getInternalScopeAccess().getDeclarationsLocalReactionParserRuleCall_3_0_3()); }
 )
 
 ;
@@ -2261,6 +2251,7 @@ finally {
 }
 
 
+
 rule__ReactionTrigger__Alternatives_1
     @init {
 		int stackSize = keepStackSize();
@@ -3150,29 +3141,29 @@ finally {
 
 
 
-rule__StatechartDefinition__Group__0
+rule__StatechartSpecification__Group__0
     @init {
 		int stackSize = keepStackSize();
     }
 :
-	rule__StatechartDefinition__Group__0__Impl
-	rule__StatechartDefinition__Group__1
+	rule__StatechartSpecification__Group__0__Impl
+	rule__StatechartSpecification__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__StatechartDefinition__Group__0__Impl
+rule__StatechartSpecification__Group__0__Impl
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getStatechartDefinitionAccess().getStatechartDefinitionAction_0()); }
+{ before(grammarAccess.getStatechartSpecificationAccess().getStatechartSpecificationAction_0()); }
 (
 
 )
-{ after(grammarAccess.getStatechartDefinitionAccess().getStatechartDefinitionAction_0()); }
+{ after(grammarAccess.getStatechartSpecificationAccess().getStatechartSpecificationAction_0()); }
 )
 
 ;
@@ -3181,27 +3172,27 @@ finally {
 }
 
 
-rule__StatechartDefinition__Group__1
+rule__StatechartSpecification__Group__1
     @init {
 		int stackSize = keepStackSize();
     }
 :
-	rule__StatechartDefinition__Group__1__Impl
-	rule__StatechartDefinition__Group__2
+	rule__StatechartSpecification__Group__1__Impl
+	rule__StatechartSpecification__Group__2
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__StatechartDefinition__Group__1__Impl
+rule__StatechartSpecification__Group__1__Impl
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getStatechartDefinitionAccess().getGroup_1()); }
-(rule__StatechartDefinition__Group_1__0)?
-{ after(grammarAccess.getStatechartDefinitionAccess().getGroup_1()); }
+{ before(grammarAccess.getStatechartSpecificationAccess().getGroup_1()); }
+(rule__StatechartSpecification__Group_1__0)?
+{ after(grammarAccess.getStatechartSpecificationAccess().getGroup_1()); }
 )
 
 ;
@@ -3210,26 +3201,26 @@ finally {
 }
 
 
-rule__StatechartDefinition__Group__2
+rule__StatechartSpecification__Group__2
     @init {
 		int stackSize = keepStackSize();
     }
 :
-	rule__StatechartDefinition__Group__2__Impl
+	rule__StatechartSpecification__Group__2__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__StatechartDefinition__Group__2__Impl
+rule__StatechartSpecification__Group__2__Impl
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getStatechartDefinitionAccess().getDefinitionScopesAssignment_2()); }
-(rule__StatechartDefinition__DefinitionScopesAssignment_2)*
-{ after(grammarAccess.getStatechartDefinitionAccess().getDefinitionScopesAssignment_2()); }
+{ before(grammarAccess.getStatechartSpecificationAccess().getDefinitionScopesAssignment_2()); }
+(rule__StatechartSpecification__DefinitionScopesAssignment_2)*
+{ after(grammarAccess.getStatechartSpecificationAccess().getDefinitionScopesAssignment_2()); }
 )
 
 ;
@@ -3244,29 +3235,29 @@ finally {
 
 
 
-rule__StatechartDefinition__Group_1__0
+rule__StatechartSpecification__Group_1__0
     @init {
 		int stackSize = keepStackSize();
     }
 :
-	rule__StatechartDefinition__Group_1__0__Impl
-	rule__StatechartDefinition__Group_1__1
+	rule__StatechartSpecification__Group_1__0__Impl
+	rule__StatechartSpecification__Group_1__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__StatechartDefinition__Group_1__0__Impl
+rule__StatechartSpecification__Group_1__0__Impl
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getStatechartDefinitionAccess().getNamespaceKeyword_1_0()); }
+{ before(grammarAccess.getStatechartSpecificationAccess().getNamespaceKeyword_1_0()); }
 
 	'namespace' 
 
-{ after(grammarAccess.getStatechartDefinitionAccess().getNamespaceKeyword_1_0()); }
+{ after(grammarAccess.getStatechartSpecificationAccess().getNamespaceKeyword_1_0()); }
 )
 
 ;
@@ -3275,26 +3266,26 @@ finally {
 }
 
 
-rule__StatechartDefinition__Group_1__1
+rule__StatechartSpecification__Group_1__1
     @init {
 		int stackSize = keepStackSize();
     }
 :
-	rule__StatechartDefinition__Group_1__1__Impl
+	rule__StatechartSpecification__Group_1__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__StatechartDefinition__Group_1__1__Impl
+rule__StatechartSpecification__Group_1__1__Impl
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getStatechartDefinitionAccess().getNamespaceAssignment_1_1()); }
-(rule__StatechartDefinition__NamespaceAssignment_1_1)
-{ after(grammarAccess.getStatechartDefinitionAccess().getNamespaceAssignment_1_1()); }
+{ before(grammarAccess.getStatechartSpecificationAccess().getNamespaceAssignment_1_1()); }
+(rule__StatechartSpecification__NamespaceAssignment_1_1)
+{ after(grammarAccess.getStatechartSpecificationAccess().getNamespaceAssignment_1_1()); }
 )
 
 ;
@@ -3307,29 +3298,29 @@ finally {
 
 
 
-rule__SimpleScope__Group__0
+rule__StateScope__Group__0
     @init {
 		int stackSize = keepStackSize();
     }
 :
-	rule__SimpleScope__Group__0__Impl
-	rule__SimpleScope__Group__1
+	rule__StateScope__Group__0__Impl
+	rule__StateScope__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SimpleScope__Group__0__Impl
+rule__StateScope__Group__0__Impl
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getSimpleScopeAccess().getSimpleScopeAction_0()); }
+{ before(grammarAccess.getStateScopeAccess().getSimpleScopeAction_0()); }
 (
 
 )
-{ after(grammarAccess.getSimpleScopeAccess().getSimpleScopeAction_0()); }
+{ after(grammarAccess.getStateScopeAccess().getSimpleScopeAction_0()); }
 )
 
 ;
@@ -3338,26 +3329,26 @@ finally {
 }
 
 
-rule__SimpleScope__Group__1
+rule__StateScope__Group__1
     @init {
 		int stackSize = keepStackSize();
     }
 :
-	rule__SimpleScope__Group__1__Impl
+	rule__StateScope__Group__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SimpleScope__Group__1__Impl
+rule__StateScope__Group__1__Impl
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getSimpleScopeAccess().getDeclarationsAssignment_1()); }
-(rule__SimpleScope__DeclarationsAssignment_1)*
-{ after(grammarAccess.getSimpleScopeAccess().getDeclarationsAssignment_1()); }
+{ before(grammarAccess.getStateScopeAccess().getDeclarationsAssignment_1()); }
+(rule__StateScope__DeclarationsAssignment_1)*
+{ after(grammarAccess.getStateScopeAccess().getDeclarationsAssignment_1()); }
 )
 
 ;
@@ -4353,102 +4344,6 @@ finally {
 
 
 
-rule__Clock__Group__0
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Clock__Group__0__Impl
-	rule__Clock__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Clock__Group__0__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getClockAccess().getClockAction_0()); }
-(
-
-)
-{ after(grammarAccess.getClockAccess().getClockAction_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Clock__Group__1
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Clock__Group__1__Impl
-	rule__Clock__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Clock__Group__1__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getClockAccess().getClockKeyword_1()); }
-
-	'clock' 
-
-{ after(grammarAccess.getClockAccess().getClockKeyword_1()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__Clock__Group__2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-	rule__Clock__Group__2__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__Clock__Group__2__Impl
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getClockAccess().getNameAssignment_2()); }
-(rule__Clock__NameAssignment_2)
-{ after(grammarAccess.getClockAccess().getNameAssignment_2()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-
-
-
-
-
-
 rule__Operation__Group__0
     @init {
 		int stackSize = keepStackSize();
@@ -10219,8 +10114,8 @@ rule__StatechartRoot__DefAssignment_1
     }
 :
 (
-{ before(grammarAccess.getStatechartRootAccess().getDefStatechartDefinitionParserRuleCall_1_0()); }
-	ruleStatechartDefinition{ after(grammarAccess.getStatechartRootAccess().getDefStatechartDefinitionParserRuleCall_1_0()); }
+{ before(grammarAccess.getStatechartRootAccess().getDefStatechartSpecificationParserRuleCall_1_0()); }
+	ruleStatechartSpecification{ after(grammarAccess.getStatechartRootAccess().getDefStatechartSpecificationParserRuleCall_1_0()); }
 )
 
 ;
@@ -10234,8 +10129,8 @@ rule__StateRoot__DefAssignment_1
     }
 :
 (
-{ before(grammarAccess.getStateRootAccess().getDefStateDeclarationParserRuleCall_1_0()); }
-	ruleStateDeclaration{ after(grammarAccess.getStateRootAccess().getDefStateDeclarationParserRuleCall_1_0()); }
+{ before(grammarAccess.getStateRootAccess().getDefStateSpecificationParserRuleCall_1_0()); }
+	ruleStateSpecification{ after(grammarAccess.getStateRootAccess().getDefStateSpecificationParserRuleCall_1_0()); }
 )
 
 ;
@@ -10249,8 +10144,23 @@ rule__TransitionRoot__DefAssignment_1
     }
 :
 (
-{ before(grammarAccess.getTransitionRootAccess().getDefTransitionStatementParserRuleCall_1_0()); }
-	ruleTransitionStatement{ after(grammarAccess.getTransitionRootAccess().getDefTransitionStatementParserRuleCall_1_0()); }
+{ before(grammarAccess.getTransitionRootAccess().getDefTransitionSpecificationParserRuleCall_1_0()); }
+	ruleTransitionSpecification{ after(grammarAccess.getTransitionRootAccess().getDefTransitionSpecificationParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StatechartSpecification__NamespaceAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStatechartSpecificationAccess().getNamespaceFQNParserRuleCall_1_1_0()); }
+	ruleFQN{ after(grammarAccess.getStatechartSpecificationAccess().getNamespaceFQNParserRuleCall_1_1_0()); }
 )
 
 ;
@@ -10258,14 +10168,14 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__StatechartDefinition__NamespaceAssignment_1_1
+rule__StatechartSpecification__DefinitionScopesAssignment_2
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getStatechartDefinitionAccess().getNamespaceFQNParserRuleCall_1_1_0()); }
-	ruleFQN{ after(grammarAccess.getStatechartDefinitionAccess().getNamespaceFQNParserRuleCall_1_1_0()); }
+{ before(grammarAccess.getStatechartSpecificationAccess().getDefinitionScopesStatechartScopeParserRuleCall_2_0()); }
+	ruleStatechartScope{ after(grammarAccess.getStatechartSpecificationAccess().getDefinitionScopesStatechartScopeParserRuleCall_2_0()); }
 )
 
 ;
@@ -10273,14 +10183,14 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__StatechartDefinition__DefinitionScopesAssignment_2
+rule__StateSpecification__ScopeAssignment
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getStatechartDefinitionAccess().getDefinitionScopesStatechartScopeParserRuleCall_2_0()); }
-	ruleStatechartScope{ after(grammarAccess.getStatechartDefinitionAccess().getDefinitionScopesStatechartScopeParserRuleCall_2_0()); }
+{ before(grammarAccess.getStateSpecificationAccess().getScopeStateScopeParserRuleCall_0()); }
+	ruleStateScope{ after(grammarAccess.getStateSpecificationAccess().getScopeStateScopeParserRuleCall_0()); }
 )
 
 ;
@@ -10288,14 +10198,14 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__StateDeclaration__ScopeAssignment
+rule__TransitionSpecification__ReactionAssignment
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getStateDeclarationAccess().getScopeSimpleScopeParserRuleCall_0()); }
-	ruleSimpleScope{ after(grammarAccess.getStateDeclarationAccess().getScopeSimpleScopeParserRuleCall_0()); }
+{ before(grammarAccess.getTransitionSpecificationAccess().getReactionTransitionReactionParserRuleCall_0()); }
+	ruleTransitionReaction{ after(grammarAccess.getTransitionSpecificationAccess().getReactionTransitionReactionParserRuleCall_0()); }
 )
 
 ;
@@ -10303,14 +10213,15 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SimpleScope__DeclarationsAssignment_1
+rule__StateScope__DeclarationsAssignment_1
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getSimpleScopeAccess().getDeclarationsDeclarationParserRuleCall_1_0()); }
-	ruleDeclaration{ after(grammarAccess.getSimpleScopeAccess().getDeclarationsDeclarationParserRuleCall_1_0()); }
+{ before(grammarAccess.getStateScopeAccess().getDeclarationsAlternatives_1_0()); }
+(rule__StateScope__DeclarationsAlternatives_1_0)
+{ after(grammarAccess.getStateScopeAccess().getDeclarationsAlternatives_1_0()); }
 )
 
 ;
@@ -10339,8 +10250,9 @@ rule__InterfaceScope__DeclarationsAssignment_4
     }
 :
 (
-{ before(grammarAccess.getInterfaceScopeAccess().getDeclarationsDeclarationParserRuleCall_4_0()); }
-	ruleDeclaration{ after(grammarAccess.getInterfaceScopeAccess().getDeclarationsDeclarationParserRuleCall_4_0()); }
+{ before(grammarAccess.getInterfaceScopeAccess().getDeclarationsAlternatives_4_0()); }
+(rule__InterfaceScope__DeclarationsAlternatives_4_0)
+{ after(grammarAccess.getInterfaceScopeAccess().getDeclarationsAlternatives_4_0()); }
 )
 
 ;
@@ -10354,8 +10266,9 @@ rule__InternalScope__DeclarationsAssignment_3
     }
 :
 (
-{ before(grammarAccess.getInternalScopeAccess().getDeclarationsDeclarationParserRuleCall_3_0()); }
-	ruleDeclaration{ after(grammarAccess.getInternalScopeAccess().getDeclarationsDeclarationParserRuleCall_3_0()); }
+{ before(grammarAccess.getInternalScopeAccess().getDeclarationsAlternatives_3_0()); }
+(rule__InternalScope__DeclarationsAlternatives_3_0)
+{ after(grammarAccess.getInternalScopeAccess().getDeclarationsAlternatives_3_0()); }
 )
 
 ;
@@ -10544,21 +10457,6 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__Clock__NameAssignment_2
-    @init {
-		int stackSize = keepStackSize();
-    }
-:
-(
-{ before(grammarAccess.getClockAccess().getNameIDTerminalRuleCall_2_0()); }
-	RULE_ID{ after(grammarAccess.getClockAccess().getNameIDTerminalRuleCall_2_0()); }
-)
-
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 rule__Operation__NameAssignment_2
     @init {
 		int stackSize = keepStackSize();

+ 67 - 69
plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.tokens

@@ -1,65 +1,42 @@
+T__68=68
+T__69=69
 RULE_ID=4
+T__66=66
+T__67=67
+T__64=64
 T__29=29
+T__65=65
 T__28=28
+T__62=62
 T__27=27
+T__63=63
 T__26=26
 T__25=25
 T__24=24
 T__23=23
 T__22=22
-T__21=21
 RULE_ANY_OTHER=13
+T__21=21
 T__20=20
-T__19=19
-T__91=91
-RULE_HEX=8
-T__16=16
-T__15=15
-T__90=90
-T__18=18
-T__17=17
-T__14=14
-T__80=80
-T__81=81
-T__82=82
-T__83=83
-T__85=85
-T__84=84
-T__87=87
-T__86=86
-T__89=89
-T__88=88
-RULE_ML_COMMENT=10
-RULE_STRING=9
-T__71=71
-T__72=72
-T__70=70
-T__76=76
-T__75=75
-T__74=74
-T__73=73
-T__79=79
-T__78=78
-T__77=77
-T__68=68
-T__69=69
-T__66=66
-T__67=67
-T__64=64
-T__65=65
-T__62=62
-T__63=63
 RULE_BOOL=6
 T__61=61
 T__60=60
 T__55=55
 T__56=56
+T__19=19
 T__57=57
+RULE_HEX=8
 T__58=58
+T__16=16
 T__51=51
+T__90=90
+T__15=15
 T__52=52
+T__18=18
 T__53=53
 T__54=54
+T__17=17
+T__14=14
 T__59=59
 RULE_INT=5
 T__50=50
@@ -67,26 +44,48 @@ T__42=42
 T__43=43
 T__40=40
 T__41=41
+T__80=80
 T__46=46
+T__81=81
 T__47=47
+T__82=82
 T__44=44
+T__83=83
 T__45=45
 T__48=48
 T__49=49
 RULE_FLOAT=7
+T__85=85
 RULE_SL_COMMENT=11
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=10
 T__30=30
 T__31=31
+RULE_STRING=9
 T__32=32
+T__71=71
 T__33=33
+T__72=72
 T__34=34
 T__35=35
+T__70=70
 T__36=36
 T__37=37
 T__38=38
 T__39=39
 RULE_WS=12
-'#'=71
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+'#'=70
 'out'=18
 '>='=43
 'internal'=60
@@ -99,68 +98,67 @@ RULE_WS=12
 '%='=24
 '>'=42
 'event'=61
-'||'=81
-'&&'=82
-';'=74
-'raise'=79
+'||'=80
+'&&'=81
+';'=73
+'raise'=78
 '+'=34
-'active'=89
-'.'=70
-'^'=84
+'active'=88
+'.'=69
+'^'=83
 '>>'=33
 'else'=15
 '^='=30
 '+='=25
-'readonly'=90
+'readonly'=89
 '>>='=28
 'void'=49
-'?'=80
+'?'=79
 'var'=62
 '&='=29
 's'=46
-'('=65
+'('=64
 ':'=59
-'exit'=76
+'exit'=75
 '-'=35
-','=67
+','=66
 'default'=14
 'in'=17
 '-='=26
-']'=73
+']'=72
 '<<='=27
 'ns'=48
 'real'=51
-'!'=83
-'|'=85
+'!'=82
+'|'=84
 'ms'=47
 'every'=20
 '|='=31
 '@@statechart@@'=54
-'exitpoint'=69
+'exitpoint'=68
 '@@state@@'=55
 '='=21
-'always'=78
-'oncycle'=77
-')'=66
+'always'=77
+'oncycle'=76
+')'=65
 '*='=22
-'entry'=75
-'operation'=64
+'entry'=74
+'operation'=63
 '%'=38
 'after'=19
 'boolean'=52
-'entrypoint'=68
+'entrypoint'=67
 'namespace'=57
 '<<'=32
 '<='=41
-'valueof'=87
+'valueof'=86
 '!='=45
 '@@transition@@'=56
-'external'=91
+'external'=90
 '<'=40
-'['=72
+'['=71
 '*'=36
-'clock'=63
 'local'=16
-'raised'=88
-'&'=86
+'raised'=87
+'&'=85
 'interface'=58

Разница между файлами не показана из-за своего большого размера
+ 443 - 482
plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSTextLexer.java


Разница между файлами не показана из-за своего большого размера
+ 6546 - 6744
plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSTextParser.java


+ 2 - 4
plugins/org.yakindu.sct.model.stext.ui/src/org/yakindu/sct/model/stext/ui/contentassist/STextProposalProvider.java

@@ -24,7 +24,7 @@ import org.yakindu.sct.model.stext.services.STextGrammarAccess;
 import org.yakindu.sct.model.stext.stext.InterfaceScope;
 import org.yakindu.sct.model.stext.stext.InternalScope;
 import org.yakindu.sct.model.stext.stext.SimpleScope;
-import org.yakindu.sct.model.stext.stext.StatechartDefinition;
+import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.TransitionReaction;
 
 import com.google.inject.Inject;
@@ -77,7 +77,7 @@ public class STextProposalProvider extends AbstractSTextProposalProvider {
 					.getGroup().eContents()));
 		}
 		// context Statechart
-		else if (contentAssistContext.getRootModel() instanceof StatechartDefinition) {
+		else if (contentAssistContext.getRootModel() instanceof StatechartSpecification) {
 			keywords.addAll(getKeywords(grammarAccess.getExitEventAccess()
 					.getGroup().eContents()));
 			keywords.addAll(getKeywords(grammarAccess.getEntryEventAccess()
@@ -89,8 +89,6 @@ public class STextProposalProvider extends AbstractSTextProposalProvider {
 					.getGroup().eContents()));
 			keywords.addAll(getKeywords(grammarAccess.getAlwaysEventAccess()
 					.getGroup().eContents()));
-			keywords.addAll(getKeywords(grammarAccess.getClockAccess()
-					.getGroup().eContents()));
 			keywords.addAll(getKeywords(grammarAccess.getOnCycleEventAccess()
 					.getGroup().eContents()));
 			keywords.addAll(getKeywords(grammarAccess.getTimeEventTypeAccess()

+ 10 - 8
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore

@@ -10,28 +10,31 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DefRoot"/>
   <eClassifiers xsi:type="ecore:EClass" name="StatechartRoot" eSuperTypes="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//DefRoot">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="def" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StatechartDefinition"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="def" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StatechartSpecification"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StateRoot" eSuperTypes="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//DefRoot">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="def" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StateDeclaration"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="def" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StateSpecification"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TransitionRoot" eSuperTypes="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//DefRoot">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="def" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionStatement"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="def" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionSpecification"
         containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StatechartDefinition">
+  <eClassifiers xsi:type="ecore:EClass" name="StatechartSpecification">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="definitionScopes" upperBound="-1"
         eType="ecore:EClass platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Scope"
         containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StateDeclaration">
+  <eClassifiers xsi:type="ecore:EClass" name="StateSpecification">
     <eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Scope"
         containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TransitionStatement"/>
+  <eClassifiers xsi:type="ecore:EClass" name="TransitionSpecification">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="reaction" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionReaction"
+        containment="true"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="EventDerivation">
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Expression"
         containment="true"/>
@@ -47,7 +50,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="properties" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//ReactionProperties"
         containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TransitionReaction" eSuperTypes="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionStatement platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Reaction">
+  <eClassifiers xsi:type="ecore:EClass" name="TransitionReaction" eSuperTypes="platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Reaction">
     <eStructuralFeatures xsi:type="ecore:EReference" name="properties" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//ReactionProperties"
         containment="true"/>
   </eClassifiers>
@@ -191,7 +194,6 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="initialValue" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Expression"
         containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Clock" eSuperTypes="platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Declaration"/>
   <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Declaration">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="paramTypes" unique="false"
         upperBound="-1" eType="ecore:EEnum platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Type"/>

+ 8 - 7
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.genmodel

@@ -82,14 +82,16 @@
     <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionRoot">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionRoot/def"/>
     </genClasses>
-    <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StatechartDefinition">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StatechartDefinition/namespace"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StatechartDefinition/definitionScopes"/>
+    <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StatechartSpecification">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StatechartSpecification/namespace"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StatechartSpecification/definitionScopes"/>
     </genClasses>
-    <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StateDeclaration">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StateDeclaration/scope"/>
+    <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StateSpecification">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//StateSpecification/scope"/>
+    </genClasses>
+    <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionSpecification">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionSpecification/reaction"/>
     </genClasses>
-    <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TransitionStatement"/>
     <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//EventDerivation">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//EventDerivation/condition"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//EventDerivation/value"/>
@@ -179,7 +181,6 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//VariableDefinition/type"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//VariableDefinition/initialValue"/>
     </genClasses>
-    <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Clock"/>
     <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Operation">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Operation/paramTypes"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Operation/type"/>

+ 117 - 118
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.xmi

@@ -61,20 +61,20 @@
         </elements>
       </alternatives>
     </rules>
-    <rules xsi:type="xtext:ParserRule" name="StatechartDefinition">
+    <rules xsi:type="xtext:ParserRule" name="StatechartSpecification">
       <type metamodel="/0/@metamodelDeclarations.0">
-        <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//StatechartDefinition"/>
+        <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//StatechartSpecification"/>
       </type>
       <alternatives xsi:type="xtext:Group">
         <elements xsi:type="xtext:Action">
           <type metamodel="/0/@metamodelDeclarations.0">
-            <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//StatechartDefinition"/>
+            <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//StatechartSpecification"/>
           </type>
         </elements>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value="namespace"/>
           <elements xsi:type="xtext:Assignment" feature="namespace" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </elements>
         </elements>
         <elements xsi:type="xtext:Assignment" cardinality="*" feature="definitionScopes" operator="+=">
@@ -82,19 +82,21 @@
         </elements>
       </alternatives>
     </rules>
-    <rules xsi:type="xtext:ParserRule" name="StateDeclaration">
+    <rules xsi:type="xtext:ParserRule" name="StateSpecification">
       <type metamodel="/0/@metamodelDeclarations.0">
-        <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//StateDeclaration"/>
+        <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//StateSpecification"/>
       </type>
       <alternatives xsi:type="xtext:Assignment" feature="scope" operator="=">
         <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
       </alternatives>
     </rules>
-    <rules xsi:type="xtext:ParserRule" name="TransitionStatement">
+    <rules xsi:type="xtext:ParserRule" name="TransitionSpecification">
       <type metamodel="/0/@metamodelDeclarations.0">
-        <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//TransitionStatement"/>
+        <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//TransitionSpecification"/>
       </type>
-      <alternatives xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
+      <alternatives xsi:type="xtext:Assignment" feature="reaction" operator="=">
+        <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>
+      </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="Scope">
       <type metamodel="/0/@metamodelDeclarations.1">
@@ -105,7 +107,7 @@
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
       </alternatives>
     </rules>
-    <rules xsi:type="xtext:ParserRule" name="SimpleScope">
+    <rules xsi:type="xtext:ParserRule" name="StateScope">
       <type metamodel="/0/@metamodelDeclarations.1">
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Scope"/>
       </type>
@@ -116,7 +118,11 @@
           </type>
         </elements>
         <elements xsi:type="xtext:Assignment" cardinality="*" feature="declarations" operator="+=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
+          <terminal xsi:type="xtext:Alternatives">
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.19"/>
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
+          </terminal>
         </elements>
       </alternatives>
     </rules>
@@ -145,7 +151,12 @@
         </elements>
         <elements xsi:type="xtext:Keyword" value=":"/>
         <elements xsi:type="xtext:Assignment" cardinality="*" feature="declarations" operator="+=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
+          <terminal xsi:type="xtext:Alternatives">
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.19"/>
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
+          </terminal>
         </elements>
       </alternatives>
     </rules>
@@ -162,7 +173,12 @@
         <elements xsi:type="xtext:Keyword" value="internal"/>
         <elements xsi:type="xtext:Keyword" value=":"/>
         <elements xsi:type="xtext:Assignment" cardinality="*" feature="declarations" operator="+=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
+          <terminal xsi:type="xtext:Alternatives">
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+            <elements xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
+          </terminal>
         </elements>
       </alternatives>
     </rules>
@@ -174,10 +190,9 @@
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.19"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="EventDefinition">
@@ -200,7 +215,7 @@
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value=":"/>
           <elements xsi:type="xtext:Assignment" feature="type" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
           </elements>
         </elements>
         <elements xsi:type="xtext:Assignment" cardinality="?" feature="derivation" operator="=">
@@ -215,12 +230,12 @@
       <alternatives xsi:type="xtext:Group">
         <elements xsi:type="xtext:Keyword" value="="/>
         <elements xsi:type="xtext:Assignment" feature="condition" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
         </elements>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value=":"/>
           <elements xsi:type="xtext:Assignment" feature="value" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
           </elements>
         </elements>
       </alternatives>
@@ -268,32 +283,16 @@
         </elements>
         <elements xsi:type="xtext:Keyword" value=":"/>
         <elements xsi:type="xtext:Assignment" feature="type" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
         </elements>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value="="/>
           <elements xsi:type="xtext:Assignment" feature="initialValue" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
           </elements>
         </elements>
       </alternatives>
     </rules>
-    <rules xsi:type="xtext:ParserRule" name="Clock">
-      <type metamodel="/0/@metamodelDeclarations.1">
-        <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Declaration"/>
-      </type>
-      <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:Action">
-          <type metamodel="/0/@metamodelDeclarations.0">
-            <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Clock"/>
-          </type>
-        </elements>
-        <elements xsi:type="xtext:Keyword" value="clock"/>
-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
-        </elements>
-      </alternatives>
-    </rules>
     <rules xsi:type="xtext:ParserRule" name="Operation">
       <type metamodel="/0/@metamodelDeclarations.1">
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Declaration"/>
@@ -311,12 +310,12 @@
         <elements xsi:type="xtext:Keyword" value="("/>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Assignment" feature="paramTypes" operator="+=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
           </elements>
           <elements xsi:type="xtext:Group" cardinality="*">
             <elements xsi:type="xtext:Keyword" value=","/>
             <elements xsi:type="xtext:Assignment" feature="paramTypes" operator="+=">
-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
             </elements>
           </elements>
         </elements>
@@ -324,7 +323,7 @@
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value=":"/>
           <elements xsi:type="xtext:Assignment" feature="type" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
           </elements>
         </elements>
       </alternatives>
@@ -378,8 +377,8 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Reaction"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="LocalReaction">
@@ -388,18 +387,18 @@
       </type>
       <alternatives xsi:type="xtext:Group">
         <elements xsi:type="xtext:Assignment" feature="trigger" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
         </elements>
         <elements xsi:type="xtext:Group">
           <elements xsi:type="xtext:Keyword" value="/"/>
           <elements xsi:type="xtext:Assignment" feature="effect" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>
           </elements>
         </elements>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value="#"/>
           <elements xsi:type="xtext:Assignment" feature="properties" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.28"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
           </elements>
         </elements>
       </alternatives>
@@ -415,18 +414,18 @@
           </type>
         </elements>
         <elements xsi:type="xtext:Assignment" cardinality="?" feature="trigger" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
         </elements>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value="/"/>
           <elements xsi:type="xtext:Assignment" feature="effect" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>
           </elements>
         </elements>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value="#"/>
           <elements xsi:type="xtext:Assignment" feature="properties" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.28"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
           </elements>
         </elements>
       </alternatives>
@@ -444,18 +443,18 @@
         <elements xsi:type="xtext:Alternatives">
           <elements xsi:type="xtext:Group">
             <elements xsi:type="xtext:Assignment" feature="triggers" operator="+=">
-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.33"/>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
             </elements>
             <elements xsi:type="xtext:Group" cardinality="*">
               <elements xsi:type="xtext:Keyword" value=","/>
               <elements xsi:type="xtext:Assignment" feature="triggers" operator="+=">
-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.33"/>
+                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
               </elements>
             </elements>
             <elements xsi:type="xtext:Group" cardinality="?">
               <elements xsi:type="xtext:Keyword" predicated="true" value="["/>
               <elements xsi:type="xtext:Assignment" feature="guardExpression" operator="=">
-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
               </elements>
               <elements xsi:type="xtext:Keyword" value="]"/>
             </elements>
@@ -463,7 +462,7 @@
           <elements xsi:type="xtext:Group">
             <elements xsi:type="xtext:Keyword" value="["/>
             <elements xsi:type="xtext:Assignment" feature="guardExpression" operator="=">
-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
             </elements>
             <elements xsi:type="xtext:Keyword" value="]"/>
           </elements>
@@ -482,7 +481,7 @@
         </elements>
         <elements xsi:type="xtext:Group" cardinality="+">
           <elements xsi:type="xtext:Assignment" feature="actions" operator="+=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.43"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.42"/>
           </elements>
           <elements xsi:type="xtext:Keyword" value=";"/>
         </elements>
@@ -499,7 +498,7 @@
           </type>
         </elements>
         <elements xsi:type="xtext:Assignment" cardinality="*" feature="properties" operator="+=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.29"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.28"/>
         </elements>
       </alternatives>
     </rules>
@@ -508,9 +507,9 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//ReactionProperty"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.29"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.30"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.31"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="ReactionPriority">
@@ -532,7 +531,7 @@
             <type metamodel="/0/@metamodelDeclarations.0">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Entrypoint"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
       </alternatives>
@@ -547,7 +546,7 @@
             <type metamodel="/0/@metamodelDeclarations.0">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Exitpoint"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
         <elements xsi:type="xtext:Keyword" value=">"/>
@@ -558,9 +557,9 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//EventSpec"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.33"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.34"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.37"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.36"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="RegularEventSpec">
@@ -572,7 +571,7 @@
           <type metamodel="/0/@metamodelDeclarations.1">
             <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Event"/>
           </type>
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
         </terminal>
       </alternatives>
     </rules>
@@ -582,13 +581,13 @@
       </type>
       <alternatives xsi:type="xtext:Group">
         <elements xsi:type="xtext:Assignment" feature="type" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.36"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
         </elements>
         <elements xsi:type="xtext:Assignment" feature="value" operator="=">
           <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
         </elements>
         <elements xsi:type="xtext:Assignment" cardinality="?" feature="unit" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.65"/>
         </elements>
       </alternatives>
     </rules>
@@ -612,11 +611,11 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//BuiltinEventSpec"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.37"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.38"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.39"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.40"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.41"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.42"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="EntryEvent">
@@ -692,9 +691,9 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Statement"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.44"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.74"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.43"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.45"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.73"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="Assignment">
@@ -707,14 +706,14 @@
             <type metamodel="/0/@metamodelDeclarations.1">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Variable"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
         <elements xsi:type="xtext:Assignment" feature="operator" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.45"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.44"/>
         </elements>
         <elements xsi:type="xtext:Assignment" feature="expression" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
         </elements>
       </alternatives>
     </rules>
@@ -780,13 +779,13 @@
             <type metamodel="/0/@metamodelDeclarations.1">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Event"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Keyword" value=":"/>
           <elements xsi:type="xtext:Assignment" feature="value" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
           </elements>
         </elements>
       </alternatives>
@@ -795,14 +794,14 @@
       <type metamodel="/0/@metamodelDeclarations.0">
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
-      <alternatives xsi:type="xtext:RuleCall" rule="/0/@rules.48"/>
+      <alternatives xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="ConditionalExpression">
       <type metamodel="/0/@metamodelDeclarations.0">
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.49"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.48"/>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Action" feature="condition" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -811,11 +810,11 @@
           </elements>
           <elements xsi:type="xtext:Keyword" value="?"/>
           <elements xsi:type="xtext:Assignment" feature="trueCase" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.49"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.48"/>
           </elements>
           <elements xsi:type="xtext:Keyword" value=":"/>
           <elements xsi:type="xtext:Assignment" feature="falseCase" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.49"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.48"/>
           </elements>
         </elements>
       </alternatives>
@@ -825,7 +824,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.50"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.49"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -834,7 +833,7 @@
           </elements>
           <elements xsi:type="xtext:Keyword" value="||"/>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.50"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.49"/>
           </elements>
         </elements>
       </alternatives>
@@ -844,7 +843,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.51"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.50"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -853,7 +852,7 @@
           </elements>
           <elements xsi:type="xtext:Keyword" value="&amp;&amp;"/>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.51"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.50"/>
           </elements>
         </elements>
       </alternatives>
@@ -863,7 +862,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.52"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.51"/>
         <elements xsi:type="xtext:Group">
           <elements xsi:type="xtext:Action">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -872,7 +871,7 @@
           </elements>
           <elements xsi:type="xtext:Keyword" value="!"/>
           <elements xsi:type="xtext:Assignment" feature="operand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.52"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.51"/>
           </elements>
         </elements>
       </alternatives>
@@ -882,7 +881,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.52"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -891,7 +890,7 @@
           </elements>
           <elements xsi:type="xtext:Keyword" value="^"/>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.52"/>
           </elements>
         </elements>
       </alternatives>
@@ -901,7 +900,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.54"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -910,7 +909,7 @@
           </elements>
           <elements xsi:type="xtext:Keyword" value="|"/>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.54"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
           </elements>
         </elements>
       </alternatives>
@@ -920,7 +919,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.55"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.54"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -929,7 +928,7 @@
           </elements>
           <elements xsi:type="xtext:Keyword" value="&amp;"/>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.55"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.54"/>
           </elements>
         </elements>
       </alternatives>
@@ -939,7 +938,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.56"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.55"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -947,10 +946,10 @@
             </type>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="operator" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.65"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.56"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.55"/>
           </elements>
         </elements>
       </alternatives>
@@ -960,7 +959,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.58"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.57"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -968,10 +967,10 @@
             </type>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="operator" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.57"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.56"/>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.58"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.57"/>
           </elements>
         </elements>
       </alternatives>
@@ -996,7 +995,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.59"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.58"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -1004,10 +1003,10 @@
             </type>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="operator" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.62"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.59"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.58"/>
           </elements>
         </elements>
       </alternatives>
@@ -1017,7 +1016,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Group">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.60"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.59"/>
         <elements xsi:type="xtext:Group" cardinality="*">
           <elements xsi:type="xtext:Action" feature="leftOperand" operator="=">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -1025,10 +1024,10 @@
             </type>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="operator" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.63"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.62"/>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="rightOperand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.60"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.59"/>
           </elements>
         </elements>
       </alternatives>
@@ -1038,7 +1037,7 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.60"/>
         <elements xsi:type="xtext:Group">
           <elements xsi:type="xtext:Action">
             <type metamodel="/0/@metamodelDeclarations.0">
@@ -1046,10 +1045,10 @@
             </type>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="operator" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.63"/>
           </elements>
           <elements xsi:type="xtext:Assignment" feature="operand" operator="=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.60"/>
           </elements>
         </elements>
       </alternatives>
@@ -1059,13 +1058,13 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.68"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
         <elements xsi:type="xtext:Group">
           <elements xsi:type="xtext:Keyword" value="("/>
-          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
           <elements xsi:type="xtext:Keyword" value=")"/>
         </elements>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.74"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.73"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:EnumRule" name="AdditiveOperator">
@@ -1203,11 +1202,11 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Expression"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.68"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.69"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.72"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.70"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.73"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.72"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="PrimitiveValueExpression">
@@ -1221,7 +1220,7 @@
           </type>
         </elements>
         <elements xsi:type="xtext:Assignment" feature="value" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.75"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.74"/>
         </elements>
       </alternatives>
     </rules>
@@ -1240,7 +1239,7 @@
             <type metamodel="/0/@metamodelDeclarations.1">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Declaration"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
       </alternatives>
@@ -1262,7 +1261,7 @@
             <type metamodel="/0/@metamodelDeclarations.1">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Event"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
         <elements xsi:type="xtext:Keyword" value=")"/>
@@ -1285,7 +1284,7 @@
             <type metamodel="/0/@metamodelDeclarations.1">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//Event"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
         <elements xsi:type="xtext:Keyword" value=")"/>
@@ -1308,7 +1307,7 @@
             <type metamodel="/0/@metamodelDeclarations.1">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/2.0.0#//RegularState"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
         <elements xsi:type="xtext:Keyword" value=")"/>
@@ -1329,18 +1328,18 @@
             <type metamodel="/0/@metamodelDeclarations.0">
               <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Operation"/>
             </type>
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
           </terminal>
         </elements>
         <elements xsi:type="xtext:Keyword" value="("/>
         <elements xsi:type="xtext:Group" cardinality="?">
           <elements xsi:type="xtext:Assignment" feature="args" operator="+=">
-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
           </elements>
           <elements xsi:type="xtext:Group" cardinality="*">
             <elements xsi:type="xtext:Keyword" value=","/>
             <elements xsi:type="xtext:Assignment" feature="args" operator="+=">
-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
             </elements>
           </elements>
         </elements>
@@ -1352,10 +1351,10 @@
         <classifier xsi:type="ecore:EClass" href="http://www.yakindu.org/sct/statechart/SText#//Literal"/>
       </type>
       <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.75"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.76"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.77"/>
-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.79"/>
         <elements xsi:type="xtext:RuleCall" rule="/0/@rules.78"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.77"/>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="BoolLiteral">
@@ -1369,7 +1368,7 @@
           </type>
         </elements>
         <elements xsi:type="xtext:Assignment" feature="value" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.80"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.79"/>
         </elements>
       </alternatives>
     </rules>
@@ -1399,7 +1398,7 @@
           </type>
         </elements>
         <elements xsi:type="xtext:Assignment" feature="value" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.82"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.81"/>
         </elements>
       </alternatives>
     </rules>
@@ -1414,7 +1413,7 @@
           </type>
         </elements>
         <elements xsi:type="xtext:Assignment" feature="value" operator="=">
-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.81"/>
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.80"/>
         </elements>
       </alternatives>
     </rules>

Разница между файлами не показана из-за своего большого размера
+ 296 - 366
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parseTreeConstruction/STextParsetreeConstructor.java


+ 206 - 205
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g

@@ -174,9 +174,9 @@ ruleStatechartRoot returns [EObject current=null]
 (
 (
 		{ 
-	        newCompositeNode(grammarAccess.getStatechartRootAccess().getDefStatechartDefinitionParserRuleCall_1_0()); 
+	        newCompositeNode(grammarAccess.getStatechartRootAccess().getDefStatechartSpecificationParserRuleCall_1_0()); 
 	    }
-		lv_def_1_0=ruleStatechartDefinition		{
+		lv_def_1_0=ruleStatechartSpecification		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getStatechartRootRule());
 	        }
@@ -184,7 +184,7 @@ ruleStatechartRoot returns [EObject current=null]
        			$current, 
        			"def",
         		lv_def_1_0, 
-        		"StatechartDefinition");
+        		"StatechartSpecification");
 	        afterParserOrEnumRuleCall();
 	    }
 
@@ -217,9 +217,9 @@ ruleStateRoot returns [EObject current=null]
 (
 (
 		{ 
-	        newCompositeNode(grammarAccess.getStateRootAccess().getDefStateDeclarationParserRuleCall_1_0()); 
+	        newCompositeNode(grammarAccess.getStateRootAccess().getDefStateSpecificationParserRuleCall_1_0()); 
 	    }
-		lv_def_1_0=ruleStateDeclaration		{
+		lv_def_1_0=ruleStateSpecification		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getStateRootRule());
 	        }
@@ -227,7 +227,7 @@ ruleStateRoot returns [EObject current=null]
        			$current, 
        			"def",
         		lv_def_1_0, 
-        		"StateDeclaration");
+        		"StateSpecification");
 	        afterParserOrEnumRuleCall();
 	    }
 
@@ -260,9 +260,9 @@ ruleTransitionRoot returns [EObject current=null]
 (
 (
 		{ 
-	        newCompositeNode(grammarAccess.getTransitionRootAccess().getDefTransitionStatementParserRuleCall_1_0()); 
+	        newCompositeNode(grammarAccess.getTransitionRootAccess().getDefTransitionSpecificationParserRuleCall_1_0()); 
 	    }
-		lv_def_1_0=ruleTransitionStatement		{
+		lv_def_1_0=ruleTransitionSpecification		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getTransitionRootRule());
 	        }
@@ -270,7 +270,7 @@ ruleTransitionRoot returns [EObject current=null]
        			$current, 
        			"def",
         		lv_def_1_0, 
-        		"TransitionStatement");
+        		"TransitionSpecification");
 	        afterParserOrEnumRuleCall();
 	    }
 
@@ -282,38 +282,38 @@ ruleTransitionRoot returns [EObject current=null]
 
 
 
-// Entry rule entryRuleStatechartDefinition
-entryRuleStatechartDefinition returns [EObject current=null] 
+// Entry rule entryRuleStatechartSpecification
+entryRuleStatechartSpecification returns [EObject current=null] 
 	:
-	{ newCompositeNode(grammarAccess.getStatechartDefinitionRule()); }
-	 iv_ruleStatechartDefinition=ruleStatechartDefinition 
-	 { $current=$iv_ruleStatechartDefinition.current; } 
+	{ newCompositeNode(grammarAccess.getStatechartSpecificationRule()); }
+	 iv_ruleStatechartSpecification=ruleStatechartSpecification 
+	 { $current=$iv_ruleStatechartSpecification.current; } 
 	 EOF 
 ;
 
-// Rule StatechartDefinition
-ruleStatechartDefinition returns [EObject current=null] 
+// Rule StatechartSpecification
+ruleStatechartSpecification returns [EObject current=null] 
     @init { enterRule(); 
     }
     @after { leaveRule(); }:
 ((
     {
         $current = forceCreateModelElement(
-            grammarAccess.getStatechartDefinitionAccess().getStatechartDefinitionAction_0(),
+            grammarAccess.getStatechartSpecificationAccess().getStatechartSpecificationAction_0(),
             $current);
     }
 )(	otherlv_1='namespace' 
     {
-    	newLeafNode(otherlv_1, grammarAccess.getStatechartDefinitionAccess().getNamespaceKeyword_1_0());
+    	newLeafNode(otherlv_1, grammarAccess.getStatechartSpecificationAccess().getNamespaceKeyword_1_0());
     }
 (
 (
 		{ 
-	        newCompositeNode(grammarAccess.getStatechartDefinitionAccess().getNamespaceFQNParserRuleCall_1_1_0()); 
+	        newCompositeNode(grammarAccess.getStatechartSpecificationAccess().getNamespaceFQNParserRuleCall_1_1_0()); 
 	    }
 		lv_namespace_2_0=ruleFQN		{
 	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getStatechartDefinitionRule());
+	            $current = createModelElementForParent(grammarAccess.getStatechartSpecificationRule());
 	        }
        		set(
        			$current, 
@@ -327,11 +327,11 @@ ruleStatechartDefinition returns [EObject current=null]
 ))?(
 (
 		{ 
-	        newCompositeNode(grammarAccess.getStatechartDefinitionAccess().getDefinitionScopesStatechartScopeParserRuleCall_2_0()); 
+	        newCompositeNode(grammarAccess.getStatechartSpecificationAccess().getDefinitionScopesStatechartScopeParserRuleCall_2_0()); 
 	    }
 		lv_definitionScopes_3_0=ruleStatechartScope		{
 	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getStatechartDefinitionRule());
+	            $current = createModelElementForParent(grammarAccess.getStatechartSpecificationRule());
 	        }
        		add(
        			$current, 
@@ -349,34 +349,34 @@ ruleStatechartDefinition returns [EObject current=null]
 
 
 
-// Entry rule entryRuleStateDeclaration
-entryRuleStateDeclaration returns [EObject current=null] 
+// Entry rule entryRuleStateSpecification
+entryRuleStateSpecification returns [EObject current=null] 
 	:
-	{ newCompositeNode(grammarAccess.getStateDeclarationRule()); }
-	 iv_ruleStateDeclaration=ruleStateDeclaration 
-	 { $current=$iv_ruleStateDeclaration.current; } 
+	{ newCompositeNode(grammarAccess.getStateSpecificationRule()); }
+	 iv_ruleStateSpecification=ruleStateSpecification 
+	 { $current=$iv_ruleStateSpecification.current; } 
 	 EOF 
 ;
 
-// Rule StateDeclaration
-ruleStateDeclaration returns [EObject current=null] 
+// Rule StateSpecification
+ruleStateSpecification returns [EObject current=null] 
     @init { enterRule(); 
     }
     @after { leaveRule(); }:
 (
 (
 		{ 
-	        newCompositeNode(grammarAccess.getStateDeclarationAccess().getScopeSimpleScopeParserRuleCall_0()); 
+	        newCompositeNode(grammarAccess.getStateSpecificationAccess().getScopeStateScopeParserRuleCall_0()); 
 	    }
-		lv_scope_0_0=ruleSimpleScope		{
+		lv_scope_0_0=ruleStateScope		{
 	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getStateDeclarationRule());
+	            $current = createModelElementForParent(grammarAccess.getStateSpecificationRule());
 	        }
        		set(
        			$current, 
        			"scope",
         		lv_scope_0_0, 
-        		"SimpleScope");
+        		"StateScope");
 	        afterParserOrEnumRuleCall();
 	    }
 
@@ -388,30 +388,39 @@ ruleStateDeclaration returns [EObject current=null]
 
 
 
-// Entry rule entryRuleTransitionStatement
-entryRuleTransitionStatement returns [EObject current=null] 
+// Entry rule entryRuleTransitionSpecification
+entryRuleTransitionSpecification returns [EObject current=null] 
 	:
-	{ newCompositeNode(grammarAccess.getTransitionStatementRule()); }
-	 iv_ruleTransitionStatement=ruleTransitionStatement 
-	 { $current=$iv_ruleTransitionStatement.current; } 
+	{ newCompositeNode(grammarAccess.getTransitionSpecificationRule()); }
+	 iv_ruleTransitionSpecification=ruleTransitionSpecification 
+	 { $current=$iv_ruleTransitionSpecification.current; } 
 	 EOF 
 ;
 
-// Rule TransitionStatement
-ruleTransitionStatement returns [EObject current=null] 
+// Rule TransitionSpecification
+ruleTransitionSpecification returns [EObject current=null] 
     @init { enterRule(); 
     }
     @after { leaveRule(); }:
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTransitionSpecificationAccess().getReactionTransitionReactionParserRuleCall_0()); 
+	    }
+		lv_reaction_0_0=ruleTransitionReaction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTransitionSpecificationRule());
+	        }
+       		set(
+       			$current, 
+       			"reaction",
+        		lv_reaction_0_0, 
+        		"TransitionReaction");
+	        afterParserOrEnumRuleCall();
+	    }
 
-    { 
-        newCompositeNode(grammarAccess.getTransitionStatementAccess().getTransitionReactionParserRuleCall()); 
-    }
-    this_TransitionReaction_0=ruleTransitionReaction
-    { 
-        $current = $this_TransitionReaction_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
+)
+)
 ;
 
 
@@ -420,43 +429,76 @@ ruleTransitionStatement returns [EObject current=null]
 
 
 
-// Entry rule entryRuleSimpleScope
-entryRuleSimpleScope returns [EObject current=null] 
+// Entry rule entryRuleStateScope
+entryRuleStateScope returns [EObject current=null] 
 	:
-	{ newCompositeNode(grammarAccess.getSimpleScopeRule()); }
-	 iv_ruleSimpleScope=ruleSimpleScope 
-	 { $current=$iv_ruleSimpleScope.current; } 
+	{ newCompositeNode(grammarAccess.getStateScopeRule()); }
+	 iv_ruleStateScope=ruleStateScope 
+	 { $current=$iv_ruleStateScope.current; } 
 	 EOF 
 ;
 
-// Rule SimpleScope
-ruleSimpleScope returns [EObject current=null] 
+// Rule StateScope
+ruleStateScope returns [EObject current=null] 
     @init { enterRule(); 
     }
     @after { leaveRule(); }:
 ((
     {
         $current = forceCreateModelElement(
-            grammarAccess.getSimpleScopeAccess().getSimpleScopeAction_0(),
+            grammarAccess.getStateScopeAccess().getSimpleScopeAction_0(),
             $current);
     }
 )(
+(
 (
 		{ 
-	        newCompositeNode(grammarAccess.getSimpleScopeAccess().getDeclarationsDeclarationParserRuleCall_1_0()); 
+	        newCompositeNode(grammarAccess.getStateScopeAccess().getDeclarationsLocalReactionParserRuleCall_1_0_0()); 
+	    }
+		lv_declarations_1_1=ruleLocalReaction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStateScopeRule());
+	        }
+       		add(
+       			$current, 
+       			"declarations",
+        		lv_declarations_1_1, 
+        		"LocalReaction");
+	        afterParserOrEnumRuleCall();
+	    }
+
+    |		{ 
+	        newCompositeNode(grammarAccess.getStateScopeAccess().getDeclarationsEntrypointParserRuleCall_1_0_1()); 
 	    }
-		lv_declarations_1_0=ruleDeclaration		{
+		lv_declarations_1_2=ruleEntrypoint		{
 	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getSimpleScopeRule());
+	            $current = createModelElementForParent(grammarAccess.getStateScopeRule());
 	        }
        		add(
        			$current, 
        			"declarations",
-        		lv_declarations_1_0, 
-        		"Declaration");
+        		lv_declarations_1_2, 
+        		"Entrypoint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+    |		{ 
+	        newCompositeNode(grammarAccess.getStateScopeAccess().getDeclarationsExitpointParserRuleCall_1_0_2()); 
+	    }
+		lv_declarations_1_3=ruleExitpoint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStateScopeRule());
+	        }
+       		add(
+       			$current, 
+       			"declarations",
+        		lv_declarations_1_3, 
+        		"Exitpoint");
 	        afterParserOrEnumRuleCall();
 	    }
 
+)
+
 )
 )*)
 ;
@@ -552,22 +594,70 @@ ruleInterfaceScope returns [EObject current=null]
     	newLeafNode(otherlv_3, grammarAccess.getInterfaceScopeAccess().getColonKeyword_3());
     }
 (
+(
 (
 		{ 
-	        newCompositeNode(grammarAccess.getInterfaceScopeAccess().getDeclarationsDeclarationParserRuleCall_4_0()); 
+	        newCompositeNode(grammarAccess.getInterfaceScopeAccess().getDeclarationsEventDefinitionParserRuleCall_4_0_0()); 
+	    }
+		lv_declarations_4_1=ruleEventDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInterfaceScopeRule());
+	        }
+       		add(
+       			$current, 
+       			"declarations",
+        		lv_declarations_4_1, 
+        		"EventDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
+
+    |		{ 
+	        newCompositeNode(grammarAccess.getInterfaceScopeAccess().getDeclarationsVariableDefinitionParserRuleCall_4_0_1()); 
 	    }
-		lv_declarations_4_0=ruleDeclaration		{
+		lv_declarations_4_2=ruleVariableDefinition		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getInterfaceScopeRule());
 	        }
        		add(
        			$current, 
        			"declarations",
-        		lv_declarations_4_0, 
-        		"Declaration");
+        		lv_declarations_4_2, 
+        		"VariableDefinition");
 	        afterParserOrEnumRuleCall();
 	    }
 
+    |		{ 
+	        newCompositeNode(grammarAccess.getInterfaceScopeAccess().getDeclarationsEntrypointParserRuleCall_4_0_2()); 
+	    }
+		lv_declarations_4_3=ruleEntrypoint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInterfaceScopeRule());
+	        }
+       		add(
+       			$current, 
+       			"declarations",
+        		lv_declarations_4_3, 
+        		"Entrypoint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+    |		{ 
+	        newCompositeNode(grammarAccess.getInterfaceScopeAccess().getDeclarationsExitpointParserRuleCall_4_0_3()); 
+	    }
+		lv_declarations_4_4=ruleExitpoint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInterfaceScopeRule());
+	        }
+       		add(
+       			$current, 
+       			"declarations",
+        		lv_declarations_4_4, 
+        		"Exitpoint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+
 )
 )*)
 ;
@@ -605,115 +695,75 @@ ruleInternalScope returns [EObject current=null]
     	newLeafNode(otherlv_2, grammarAccess.getInternalScopeAccess().getColonKeyword_2());
     }
 (
+(
 (
 		{ 
-	        newCompositeNode(grammarAccess.getInternalScopeAccess().getDeclarationsDeclarationParserRuleCall_3_0()); 
+	        newCompositeNode(grammarAccess.getInternalScopeAccess().getDeclarationsEventDefinitionParserRuleCall_3_0_0()); 
 	    }
-		lv_declarations_3_0=ruleDeclaration		{
+		lv_declarations_3_1=ruleEventDefinition		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getInternalScopeRule());
 	        }
        		add(
        			$current, 
        			"declarations",
-        		lv_declarations_3_0, 
-        		"Declaration");
+        		lv_declarations_3_1, 
+        		"EventDefinition");
 	        afterParserOrEnumRuleCall();
 	    }
 
-)
-)*)
-;
-
+    |		{ 
+	        newCompositeNode(grammarAccess.getInternalScopeAccess().getDeclarationsVariableDefinitionParserRuleCall_3_0_1()); 
+	    }
+		lv_declarations_3_2=ruleVariableDefinition		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInternalScopeRule());
+	        }
+       		add(
+       			$current, 
+       			"declarations",
+        		lv_declarations_3_2, 
+        		"VariableDefinition");
+	        afterParserOrEnumRuleCall();
+	    }
 
+    |		{ 
+	        newCompositeNode(grammarAccess.getInternalScopeAccess().getDeclarationsOperationParserRuleCall_3_0_2()); 
+	    }
+		lv_declarations_3_3=ruleOperation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInternalScopeRule());
+	        }
+       		add(
+       			$current, 
+       			"declarations",
+        		lv_declarations_3_3, 
+        		"Operation");
+	        afterParserOrEnumRuleCall();
+	    }
 
+    |		{ 
+	        newCompositeNode(grammarAccess.getInternalScopeAccess().getDeclarationsLocalReactionParserRuleCall_3_0_3()); 
+	    }
+		lv_declarations_3_4=ruleLocalReaction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getInternalScopeRule());
+	        }
+       		add(
+       			$current, 
+       			"declarations",
+        		lv_declarations_3_4, 
+        		"LocalReaction");
+	        afterParserOrEnumRuleCall();
+	    }
 
+)
 
-// Entry rule entryRuleDeclaration
-entryRuleDeclaration returns [EObject current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getDeclarationRule()); }
-	 iv_ruleDeclaration=ruleDeclaration 
-	 { $current=$iv_ruleDeclaration.current; } 
-	 EOF 
+)
+)*)
 ;
 
-// Rule Declaration
-ruleDeclaration returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getDeclarationAccess().getEventDefinitionParserRuleCall_0()); 
-    }
-    this_EventDefinition_0=ruleEventDefinition
-    { 
-        $current = $this_EventDefinition_0.current; 
-        afterParserOrEnumRuleCall();
-    }
 
-    |
-    { 
-        newCompositeNode(grammarAccess.getDeclarationAccess().getVariableDefinitionParserRuleCall_1()); 
-    }
-    this_VariableDefinition_1=ruleVariableDefinition
-    { 
-        $current = $this_VariableDefinition_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getDeclarationAccess().getClockParserRuleCall_2()); 
-    }
-    this_Clock_2=ruleClock
-    { 
-        $current = $this_Clock_2.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getDeclarationAccess().getOperationParserRuleCall_3()); 
-    }
-    this_Operation_3=ruleOperation
-    { 
-        $current = $this_Operation_3.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getDeclarationAccess().getLocalReactionParserRuleCall_4()); 
-    }
-    this_LocalReaction_4=ruleLocalReaction
-    { 
-        $current = $this_LocalReaction_4.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getDeclarationAccess().getEntrypointParserRuleCall_5()); 
-    }
-    this_Entrypoint_5=ruleEntrypoint
-    { 
-        $current = $this_Entrypoint_5.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getDeclarationAccess().getExitpointParserRuleCall_6()); 
-    }
-    this_Exitpoint_6=ruleExitpoint
-    { 
-        $current = $this_Exitpoint_6.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
-;
 
 
 
@@ -1054,55 +1104,6 @@ ruleVariableDefinition returns [EObject current=null]
 
 
 
-// Entry rule entryRuleClock
-entryRuleClock returns [EObject current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getClockRule()); }
-	 iv_ruleClock=ruleClock 
-	 { $current=$iv_ruleClock.current; } 
-	 EOF 
-;
-
-// Rule Clock
-ruleClock returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getClockAccess().getClockAction_0(),
-            $current);
-    }
-)	otherlv_1='clock' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getClockAccess().getClockKeyword_1());
-    }
-(
-(
-		lv_name_2_0=RULE_ID
-		{
-			newLeafNode(lv_name_2_0, grammarAccess.getClockAccess().getNameIDTerminalRuleCall_2_0()); 
-		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getClockRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"name",
-        		lv_name_2_0, 
-        		"ID");
-	    }
-
-)
-))
-;
-
-
-
-
-
 // Entry rule entryRuleOperation
 entryRuleOperation returns [EObject current=null] 
 	:

+ 104 - 106
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.tokens

@@ -1,65 +1,42 @@
+T__68=68
+T__69=69
 RULE_ID=4
+T__66=66
+T__67=67
+T__64=64
 T__29=29
+T__65=65
 T__28=28
+T__62=62
 T__27=27
+T__63=63
 T__26=26
 T__25=25
 T__24=24
 T__23=23
 T__22=22
-T__21=21
 RULE_ANY_OTHER=13
+T__21=21
 T__20=20
-T__19=19
-T__91=91
-RULE_HEX=8
-T__16=16
-T__15=15
-T__90=90
-T__18=18
-T__17=17
-T__14=14
-T__80=80
-T__81=81
-T__82=82
-T__83=83
-T__85=85
-T__84=84
-T__87=87
-T__86=86
-T__89=89
-T__88=88
-RULE_ML_COMMENT=10
-RULE_STRING=9
-T__71=71
-T__72=72
-T__70=70
-T__76=76
-T__75=75
-T__74=74
-T__73=73
-T__79=79
-T__78=78
-T__77=77
-T__68=68
-T__69=69
-T__66=66
-T__67=67
-T__64=64
-T__65=65
-T__62=62
-T__63=63
 RULE_BOOL=6
 T__61=61
 T__60=60
 T__55=55
 T__56=56
+T__19=19
 T__57=57
+RULE_HEX=8
 T__58=58
+T__16=16
 T__51=51
+T__90=90
+T__15=15
 T__52=52
+T__18=18
 T__53=53
 T__54=54
+T__17=17
+T__14=14
 T__59=59
 RULE_INT=5
 T__50=50
@@ -67,100 +44,121 @@ T__42=42
 T__43=43
 T__40=40
 T__41=41
+T__80=80
 T__46=46
+T__81=81
 T__47=47
+T__82=82
 T__44=44
+T__83=83
 T__45=45
 T__48=48
 T__49=49
 RULE_FLOAT=7
+T__85=85
 RULE_SL_COMMENT=11
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=10
 T__30=30
 T__31=31
+RULE_STRING=9
 T__32=32
+T__71=71
 T__33=33
+T__72=72
 T__34=34
 T__35=35
+T__70=70
 T__36=36
 T__37=37
 T__38=38
 T__39=39
 RULE_WS=12
-'>='=81
-'#'=35
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+'>='=80
+'#'=34
 'internal'=20
-'out'=59
-'~'=78
-'=='=82
-'/'=34
-'string'=91
-'/='=63
-'integer'=88
-'%='=64
+'out'=58
+'~'=77
+'=='=81
+'/'=33
+'string'=90
+'/='=62
+'integer'=87
+'%='=63
+'>'=38
 'event'=21
-'>'=39
-'||'=48
-'&&'=49
-';'=38
-'raise'=46
-'+'=74
-'.'=33
-'active'=56
-'^'=51
-'>>'=73
-'else'=45
-'^='=70
-'+='=65
+'||'=47
+'&&'=48
+';'=37
+'raise'=45
+'+'=73
+'.'=32
+'active'=55
+'^'=50
+'>>'=72
+'else'=44
+'^='=69
+'+='=64
 'readonly'=24
-'>>='=68
-'void'=87
-'?'=47
+'>>='=67
+'void'=86
+'?'=46
 'var'=23
-'s'=84
-'&='=69
-'('=28
+'s'=83
+'&='=68
+'('=27
 ':'=19
-'-'=75
-'exit'=41
-','=29
-'default'=44
-'in'=58
-'-='=66
-'<<='=67
-']'=37
-'real'=89
-'ns'=86
-'!'=50
-'|'=52
-'ms'=85
-'every'=61
-'|='=71
+'-'=74
+'exit'=40
+','=28
+'default'=43
+'in'=57
+'-='=65
+'<<='=66
+']'=36
+'real'=88
+'ns'=85
+'!'=49
+'|'=51
+'ms'=84
+'every'=60
+'|='=70
 '@@statechart@@'=14
-'exitpoint'=32
+'exitpoint'=31
 '@@state@@'=15
 '='=22
-'always'=43
-')'=30
-'oncycle'=42
-'*='=62
-'entry'=40
-'%'=77
-'operation'=27
-'after'=60
-'boolean'=90
-'entrypoint'=31
+'always'=42
+')'=29
+'oncycle'=41
+'*='=61
+'entry'=39
+'%'=76
+'operation'=26
+'after'=59
+'boolean'=89
+'entrypoint'=30
 'namespace'=17
-'<<'=72
-'<='=80
-'!='=83
+'<<'=71
+'<='=79
+'!='=82
 '@@transition@@'=16
-'valueof'=54
+'valueof'=53
 'external'=25
-'<'=79
-'*'=76
-'['=36
-'clock'=26
-'local'=57
-'raised'=55
-'&'=53
+'<'=78
+'*'=75
+'['=35
+'local'=56
+'raised'=54
+'&'=52
 'interface'=18

Разница между файлами не показана из-за своего большого размера
+ 582 - 620
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSTextLexer.java


Разница между файлами не показана из-за своего большого размера
+ 3009 - 3035
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSTextParser.java


+ 165 - 159
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/services/STextGrammarAccess.java

@@ -65,23 +65,23 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cStatechartKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cDefAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cDefStatechartDefinitionParserRuleCall_1_0 = (RuleCall)cDefAssignment_1.eContents().get(0);
+		private final RuleCall cDefStatechartSpecificationParserRuleCall_1_0 = (RuleCall)cDefAssignment_1.eContents().get(0);
 		
 		//StatechartRoot:
-		//	"@@statechart@@" def=StatechartDefinition;
+		//	"@@statechart@@" def=StatechartSpecification;
 		public ParserRule getRule() { return rule; }
 
-		//"@@statechart@@" def=StatechartDefinition
+		//"@@statechart@@" def=StatechartSpecification
 		public Group getGroup() { return cGroup; }
 
 		//"@@statechart@@"
 		public Keyword getStatechartKeyword_0() { return cStatechartKeyword_0; }
 
-		//def=StatechartDefinition
+		//def=StatechartSpecification
 		public Assignment getDefAssignment_1() { return cDefAssignment_1; }
 
-		//StatechartDefinition
-		public RuleCall getDefStatechartDefinitionParserRuleCall_1_0() { return cDefStatechartDefinitionParserRuleCall_1_0; }
+		//StatechartSpecification
+		public RuleCall getDefStatechartSpecificationParserRuleCall_1_0() { return cDefStatechartSpecificationParserRuleCall_1_0; }
 	}
 
 	public class StateRootElements extends AbstractParserRuleElementFinder {
@@ -89,23 +89,23 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cStateKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cDefAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cDefStateDeclarationParserRuleCall_1_0 = (RuleCall)cDefAssignment_1.eContents().get(0);
+		private final RuleCall cDefStateSpecificationParserRuleCall_1_0 = (RuleCall)cDefAssignment_1.eContents().get(0);
 		
 		//StateRoot:
-		//	"@@state@@" def=StateDeclaration;
+		//	"@@state@@" def=StateSpecification;
 		public ParserRule getRule() { return rule; }
 
-		//"@@state@@" def=StateDeclaration
+		//"@@state@@" def=StateSpecification
 		public Group getGroup() { return cGroup; }
 
 		//"@@state@@"
 		public Keyword getStateKeyword_0() { return cStateKeyword_0; }
 
-		//def=StateDeclaration
+		//def=StateSpecification
 		public Assignment getDefAssignment_1() { return cDefAssignment_1; }
 
-		//StateDeclaration
-		public RuleCall getDefStateDeclarationParserRuleCall_1_0() { return cDefStateDeclarationParserRuleCall_1_0; }
+		//StateSpecification
+		public RuleCall getDefStateSpecificationParserRuleCall_1_0() { return cDefStateSpecificationParserRuleCall_1_0; }
 	}
 
 	public class TransitionRootElements extends AbstractParserRuleElementFinder {
@@ -113,29 +113,29 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cTransitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cDefAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cDefTransitionStatementParserRuleCall_1_0 = (RuleCall)cDefAssignment_1.eContents().get(0);
+		private final RuleCall cDefTransitionSpecificationParserRuleCall_1_0 = (RuleCall)cDefAssignment_1.eContents().get(0);
 		
 		//TransitionRoot:
-		//	"@@transition@@" def=TransitionStatement;
+		//	"@@transition@@" def=TransitionSpecification;
 		public ParserRule getRule() { return rule; }
 
-		//"@@transition@@" def=TransitionStatement
+		//"@@transition@@" def=TransitionSpecification
 		public Group getGroup() { return cGroup; }
 
 		//"@@transition@@"
 		public Keyword getTransitionKeyword_0() { return cTransitionKeyword_0; }
 
-		//def=TransitionStatement
+		//def=TransitionSpecification
 		public Assignment getDefAssignment_1() { return cDefAssignment_1; }
 
-		//TransitionStatement
-		public RuleCall getDefTransitionStatementParserRuleCall_1_0() { return cDefTransitionStatementParserRuleCall_1_0; }
+		//TransitionSpecification
+		public RuleCall getDefTransitionSpecificationParserRuleCall_1_0() { return cDefTransitionSpecificationParserRuleCall_1_0; }
 	}
 
-	public class StatechartDefinitionElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StatechartDefinition");
+	public class StatechartSpecificationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StatechartSpecification");
 		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Action cStatechartDefinitionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Action cStatechartSpecificationAction_0 = (Action)cGroup.eContents().get(0);
 		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
 		private final Keyword cNamespaceKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
 		private final Assignment cNamespaceAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
@@ -145,15 +145,15 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		
 		/// * ---- start rules ----
 		//Define the starting points used by the statechart integration. These rules hook in the concrete rules of the specific grammar.
-		// * / StatechartDefinition:
-		//	{StatechartDefinition} ("namespace" namespace=FQN)? definitionScopes+=StatechartScope*;
+		// * / StatechartSpecification:
+		//	{StatechartSpecification} ("namespace" namespace=FQN)? definitionScopes+=StatechartScope*;
 		public ParserRule getRule() { return rule; }
 
-		//{StatechartDefinition} ("namespace" namespace=FQN)? definitionScopes+=StatechartScope*
+		//{StatechartSpecification} ("namespace" namespace=FQN)? definitionScopes+=StatechartScope*
 		public Group getGroup() { return cGroup; }
 
-		//{StatechartDefinition}
-		public Action getStatechartDefinitionAction_0() { return cStatechartDefinitionAction_0; }
+		//{StatechartSpecification}
+		public Action getStatechartSpecificationAction_0() { return cStatechartSpecificationAction_0; }
 
 		//("namespace" namespace=FQN)?
 		public Group getGroup_1() { return cGroup_1; }
@@ -174,80 +174,95 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		public RuleCall getDefinitionScopesStatechartScopeParserRuleCall_2_0() { return cDefinitionScopesStatechartScopeParserRuleCall_2_0; }
 	}
 
-	public class StateDeclarationElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StateDeclaration");
+	public class StateSpecificationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StateSpecification");
 		private final Assignment cScopeAssignment = (Assignment)rule.eContents().get(1);
-		private final RuleCall cScopeSimpleScopeParserRuleCall_0 = (RuleCall)cScopeAssignment.eContents().get(0);
+		private final RuleCall cScopeStateScopeParserRuleCall_0 = (RuleCall)cScopeAssignment.eContents().get(0);
 		
-		//StateDeclaration:
-		//	scope=SimpleScope;
+		//StateSpecification:
+		//	scope=StateScope;
 		public ParserRule getRule() { return rule; }
 
-		//scope=SimpleScope
+		//scope=StateScope
 		public Assignment getScopeAssignment() { return cScopeAssignment; }
 
-		//SimpleScope
-		public RuleCall getScopeSimpleScopeParserRuleCall_0() { return cScopeSimpleScopeParserRuleCall_0; }
+		//StateScope
+		public RuleCall getScopeStateScopeParserRuleCall_0() { return cScopeStateScopeParserRuleCall_0; }
 	}
 
-	public class TransitionStatementElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TransitionStatement");
-		private final RuleCall cTransitionReactionParserRuleCall = (RuleCall)rule.eContents().get(1);
+	public class TransitionSpecificationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TransitionSpecification");
+		private final Assignment cReactionAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cReactionTransitionReactionParserRuleCall_0 = (RuleCall)cReactionAssignment.eContents().get(0);
 		
-		//TransitionStatement: //	Reaction;
-		//	TransitionReaction;
+		//TransitionSpecification:
+		//	reaction=TransitionReaction;
 		public ParserRule getRule() { return rule; }
 
-		////	Reaction;
+		//reaction=TransitionReaction
+		public Assignment getReactionAssignment() { return cReactionAssignment; }
+
 		//TransitionReaction
-		public RuleCall getTransitionReactionParserRuleCall() { return cTransitionReactionParserRuleCall; }
+		public RuleCall getReactionTransitionReactionParserRuleCall_0() { return cReactionTransitionReactionParserRuleCall_0; }
 	}
 
 	public class ScopeElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Scope");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
-		private final RuleCall cSimpleScopeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cStateScopeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cStatechartScopeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
 		/// * ---- scope rules ----
 		//Defines different kinds of scopes that contain element definitions. Scopes are used for element definitions in statechart, regions, and state 
 		// * / Scope returns sct::Scope:
-		//	SimpleScope | StatechartScope;
+		//	StateScope | StatechartScope;
 		public ParserRule getRule() { return rule; }
 
-		//SimpleScope | StatechartScope
+		//StateScope | StatechartScope
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//SimpleScope
-		public RuleCall getSimpleScopeParserRuleCall_0() { return cSimpleScopeParserRuleCall_0; }
+		//StateScope
+		public RuleCall getStateScopeParserRuleCall_0() { return cStateScopeParserRuleCall_0; }
 
 		//StatechartScope
 		public RuleCall getStatechartScopeParserRuleCall_1() { return cStatechartScopeParserRuleCall_1; }
 	}
 
-	public class SimpleScopeElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleScope");
+	public class StateScopeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StateScope");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cSimpleScopeAction_0 = (Action)cGroup.eContents().get(0);
 		private final Assignment cDeclarationsAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cDeclarationsDeclarationParserRuleCall_1_0 = (RuleCall)cDeclarationsAssignment_1.eContents().get(0);
+		private final Alternatives cDeclarationsAlternatives_1_0 = (Alternatives)cDeclarationsAssignment_1.eContents().get(0);
+		private final RuleCall cDeclarationsLocalReactionParserRuleCall_1_0_0 = (RuleCall)cDeclarationsAlternatives_1_0.eContents().get(0);
+		private final RuleCall cDeclarationsEntrypointParserRuleCall_1_0_1 = (RuleCall)cDeclarationsAlternatives_1_0.eContents().get(1);
+		private final RuleCall cDeclarationsExitpointParserRuleCall_1_0_2 = (RuleCall)cDeclarationsAlternatives_1_0.eContents().get(2);
 		
 		//// a SimpleScope is used for states and regions
-		//SimpleScope returns sct::Scope:
-		//	{SimpleScope} declarations+=Declaration*;
+		//StateScope returns sct::Scope:
+		//	{SimpleScope} declarations+=(LocalReaction | Entrypoint | Exitpoint)*;
 		public ParserRule getRule() { return rule; }
 
-		//{SimpleScope} declarations+=Declaration*
+		//{SimpleScope} declarations+=(LocalReaction | Entrypoint | Exitpoint)*
 		public Group getGroup() { return cGroup; }
 
 		//{SimpleScope}
 		public Action getSimpleScopeAction_0() { return cSimpleScopeAction_0; }
 
-		//declarations+=Declaration*
+		//declarations+=(LocalReaction | Entrypoint | Exitpoint)*
 		public Assignment getDeclarationsAssignment_1() { return cDeclarationsAssignment_1; }
 
-		//Declaration
-		public RuleCall getDeclarationsDeclarationParserRuleCall_1_0() { return cDeclarationsDeclarationParserRuleCall_1_0; }
+		//LocalReaction | Entrypoint | Exitpoint
+		public Alternatives getDeclarationsAlternatives_1_0() { return cDeclarationsAlternatives_1_0; }
+
+		//LocalReaction
+		public RuleCall getDeclarationsLocalReactionParserRuleCall_1_0_0() { return cDeclarationsLocalReactionParserRuleCall_1_0_0; }
+
+		//Entrypoint
+		public RuleCall getDeclarationsEntrypointParserRuleCall_1_0_1() { return cDeclarationsEntrypointParserRuleCall_1_0_1; }
+
+		//Exitpoint
+		public RuleCall getDeclarationsExitpointParserRuleCall_1_0_2() { return cDeclarationsExitpointParserRuleCall_1_0_2; }
 	}
 
 	public class StatechartScopeElements extends AbstractParserRuleElementFinder {
@@ -280,13 +295,18 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
 		private final Keyword cColonKeyword_3 = (Keyword)cGroup.eContents().get(3);
 		private final Assignment cDeclarationsAssignment_4 = (Assignment)cGroup.eContents().get(4);
-		private final RuleCall cDeclarationsDeclarationParserRuleCall_4_0 = (RuleCall)cDeclarationsAssignment_4.eContents().get(0);
+		private final Alternatives cDeclarationsAlternatives_4_0 = (Alternatives)cDeclarationsAssignment_4.eContents().get(0);
+		private final RuleCall cDeclarationsEventDefinitionParserRuleCall_4_0_0 = (RuleCall)cDeclarationsAlternatives_4_0.eContents().get(0);
+		private final RuleCall cDeclarationsVariableDefinitionParserRuleCall_4_0_1 = (RuleCall)cDeclarationsAlternatives_4_0.eContents().get(1);
+		private final RuleCall cDeclarationsEntrypointParserRuleCall_4_0_2 = (RuleCall)cDeclarationsAlternatives_4_0.eContents().get(2);
+		private final RuleCall cDeclarationsExitpointParserRuleCall_4_0_3 = (RuleCall)cDeclarationsAlternatives_4_0.eContents().get(3);
 		
 		//InterfaceScope returns sct::Scope:
-		//	{InterfaceScope} "interface" name=ID? ":" declarations+=Declaration*;
+		//	{InterfaceScope} "interface" name=ID? ":" declarations+=(EventDefinition | VariableDefinition | Entrypoint |
+		//	Exitpoint)*;
 		public ParserRule getRule() { return rule; }
 
-		//{InterfaceScope} "interface" name=ID? ":" declarations+=Declaration*
+		//{InterfaceScope} "interface" name=ID? ":" declarations+=(EventDefinition | VariableDefinition | Entrypoint | Exitpoint)*
 		public Group getGroup() { return cGroup; }
 
 		//{InterfaceScope}
@@ -304,11 +324,23 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		//":"
 		public Keyword getColonKeyword_3() { return cColonKeyword_3; }
 
-		//declarations+=Declaration*
+		//declarations+=(EventDefinition | VariableDefinition | Entrypoint | Exitpoint)*
 		public Assignment getDeclarationsAssignment_4() { return cDeclarationsAssignment_4; }
 
-		//Declaration
-		public RuleCall getDeclarationsDeclarationParserRuleCall_4_0() { return cDeclarationsDeclarationParserRuleCall_4_0; }
+		//EventDefinition | VariableDefinition | Entrypoint | Exitpoint
+		public Alternatives getDeclarationsAlternatives_4_0() { return cDeclarationsAlternatives_4_0; }
+
+		//EventDefinition
+		public RuleCall getDeclarationsEventDefinitionParserRuleCall_4_0_0() { return cDeclarationsEventDefinitionParserRuleCall_4_0_0; }
+
+		//VariableDefinition
+		public RuleCall getDeclarationsVariableDefinitionParserRuleCall_4_0_1() { return cDeclarationsVariableDefinitionParserRuleCall_4_0_1; }
+
+		//Entrypoint
+		public RuleCall getDeclarationsEntrypointParserRuleCall_4_0_2() { return cDeclarationsEntrypointParserRuleCall_4_0_2; }
+
+		//Exitpoint
+		public RuleCall getDeclarationsExitpointParserRuleCall_4_0_3() { return cDeclarationsExitpointParserRuleCall_4_0_3; }
 	}
 
 	public class InternalScopeElements extends AbstractParserRuleElementFinder {
@@ -318,13 +350,17 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final Keyword cInternalKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
 		private final Assignment cDeclarationsAssignment_3 = (Assignment)cGroup.eContents().get(3);
-		private final RuleCall cDeclarationsDeclarationParserRuleCall_3_0 = (RuleCall)cDeclarationsAssignment_3.eContents().get(0);
+		private final Alternatives cDeclarationsAlternatives_3_0 = (Alternatives)cDeclarationsAssignment_3.eContents().get(0);
+		private final RuleCall cDeclarationsEventDefinitionParserRuleCall_3_0_0 = (RuleCall)cDeclarationsAlternatives_3_0.eContents().get(0);
+		private final RuleCall cDeclarationsVariableDefinitionParserRuleCall_3_0_1 = (RuleCall)cDeclarationsAlternatives_3_0.eContents().get(1);
+		private final RuleCall cDeclarationsOperationParserRuleCall_3_0_2 = (RuleCall)cDeclarationsAlternatives_3_0.eContents().get(2);
+		private final RuleCall cDeclarationsLocalReactionParserRuleCall_3_0_3 = (RuleCall)cDeclarationsAlternatives_3_0.eContents().get(3);
 		
 		//InternalScope returns sct::Scope:
-		//	{InternalScope} "internal" ":" declarations+=Declaration*;
+		//	{InternalScope} "internal" ":" declarations+=(EventDefinition | VariableDefinition | Operation | LocalReaction)*;
 		public ParserRule getRule() { return rule; }
 
-		//{InternalScope} "internal" ":" declarations+=Declaration*
+		//{InternalScope} "internal" ":" declarations+=(EventDefinition | VariableDefinition | Operation | LocalReaction)*
 		public Group getGroup() { return cGroup; }
 
 		//{InternalScope}
@@ -336,11 +372,23 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		//":"
 		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
 
-		//declarations+=Declaration*
+		//declarations+=(EventDefinition | VariableDefinition | Operation | LocalReaction)*
 		public Assignment getDeclarationsAssignment_3() { return cDeclarationsAssignment_3; }
 
-		//Declaration
-		public RuleCall getDeclarationsDeclarationParserRuleCall_3_0() { return cDeclarationsDeclarationParserRuleCall_3_0; }
+		//EventDefinition | VariableDefinition | Operation | LocalReaction
+		public Alternatives getDeclarationsAlternatives_3_0() { return cDeclarationsAlternatives_3_0; }
+
+		//EventDefinition
+		public RuleCall getDeclarationsEventDefinitionParserRuleCall_3_0_0() { return cDeclarationsEventDefinitionParserRuleCall_3_0_0; }
+
+		//VariableDefinition
+		public RuleCall getDeclarationsVariableDefinitionParserRuleCall_3_0_1() { return cDeclarationsVariableDefinitionParserRuleCall_3_0_1; }
+
+		//Operation
+		public RuleCall getDeclarationsOperationParserRuleCall_3_0_2() { return cDeclarationsOperationParserRuleCall_3_0_2; }
+
+		//LocalReaction
+		public RuleCall getDeclarationsLocalReactionParserRuleCall_3_0_3() { return cDeclarationsLocalReactionParserRuleCall_3_0_3; }
 	}
 
 	public class DeclarationElements extends AbstractParserRuleElementFinder {
@@ -348,18 +396,17 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final RuleCall cEventDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cVariableDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
-		private final RuleCall cClockParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
-		private final RuleCall cOperationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
-		private final RuleCall cLocalReactionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
-		private final RuleCall cEntrypointParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
-		private final RuleCall cExitpointParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+		private final RuleCall cOperationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cLocalReactionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cEntrypointParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		private final RuleCall cExitpointParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
 		
 		/// * ---- declarations ----
 		//a definition is a top level element of a definition scope. * / Declaration returns sct::Declaration:
-		//	EventDefinition | VariableDefinition | Clock | Operation | LocalReaction | Entrypoint | Exitpoint;
+		//	EventDefinition | VariableDefinition | Operation | LocalReaction | Entrypoint | Exitpoint;
 		public ParserRule getRule() { return rule; }
 
-		//EventDefinition | VariableDefinition | Clock | Operation | LocalReaction | Entrypoint | Exitpoint
+		//EventDefinition | VariableDefinition | Operation | LocalReaction | Entrypoint | Exitpoint
 		public Alternatives getAlternatives() { return cAlternatives; }
 
 		//EventDefinition
@@ -368,20 +415,17 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		//VariableDefinition
 		public RuleCall getVariableDefinitionParserRuleCall_1() { return cVariableDefinitionParserRuleCall_1; }
 
-		//Clock
-		public RuleCall getClockParserRuleCall_2() { return cClockParserRuleCall_2; }
-
 		//Operation
-		public RuleCall getOperationParserRuleCall_3() { return cOperationParserRuleCall_3; }
+		public RuleCall getOperationParserRuleCall_2() { return cOperationParserRuleCall_2; }
 
 		//LocalReaction
-		public RuleCall getLocalReactionParserRuleCall_4() { return cLocalReactionParserRuleCall_4; }
+		public RuleCall getLocalReactionParserRuleCall_3() { return cLocalReactionParserRuleCall_3; }
 
 		//Entrypoint
-		public RuleCall getEntrypointParserRuleCall_5() { return cEntrypointParserRuleCall_5; }
+		public RuleCall getEntrypointParserRuleCall_4() { return cEntrypointParserRuleCall_4; }
 
 		//Exitpoint
-		public RuleCall getExitpointParserRuleCall_6() { return cExitpointParserRuleCall_6; }
+		public RuleCall getExitpointParserRuleCall_5() { return cExitpointParserRuleCall_5; }
 	}
 
 	public class EventDefinitionElements extends AbstractParserRuleElementFinder {
@@ -563,34 +607,6 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		public RuleCall getInitialValueExpressionParserRuleCall_6_1_0() { return cInitialValueExpressionParserRuleCall_6_1_0; }
 	}
 
-	public class ClockElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Clock");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Action cClockAction_0 = (Action)cGroup.eContents().get(0);
-		private final Keyword cClockKeyword_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);
-		
-		/// * ---- clock definition ---- * / Clock returns sct::Declaration:
-		//	{Clock} "clock" name=ID;
-		public ParserRule getRule() { return rule; }
-
-		//{Clock} "clock" name=ID
-		public Group getGroup() { return cGroup; }
-
-		//{Clock}
-		public Action getClockAction_0() { return cClockAction_0; }
-
-		//"clock"
-		public Keyword getClockKeyword_1() { return cClockKeyword_1; }
-
-		//name=ID
-		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
-
-		//ID
-		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
-	}
-
 	public class OperationElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Operation");
 		private final Group cGroup = (Group)rule.eContents().get(1);
@@ -612,7 +628,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final Assignment cTypeAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
 		private final RuleCall cTypeTypeEnumRuleCall_6_1_0 = (RuleCall)cTypeAssignment_6_1.eContents().get(0);
 		
-		/// * ---- clock definition ---- * / Operation returns sct::Declaration:
+		/// * ---- operation definition ---- * / Operation returns sct::Declaration:
 		//	{Operation} "operation" name=ID "(" (paramTypes+=Type ("," paramTypes+=Type)*)? ")" (":" type=Type)?;
 		public ParserRule getRule() { return rule; }
 
@@ -1218,7 +1234,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final RuleCall cAlwaysEventParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
 		private final RuleCall cDefaultEventParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
 		
-		//// TODO: add dereived events like in(state), entered(state)	
+		////TODO: Group OnCycleEvent and AlwaysEvent, maybe replace it by a DoEvent
 		//BuiltinEventSpec:
 		//	EntryEvent | ExitEvent | OnCycleEvent | AlwaysEvent | DefaultEvent;
 		public ParserRule getRule() { return rule; }
@@ -2829,11 +2845,11 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	private StatechartRootElements pStatechartRoot;
 	private StateRootElements pStateRoot;
 	private TransitionRootElements pTransitionRoot;
-	private StatechartDefinitionElements pStatechartDefinition;
-	private StateDeclarationElements pStateDeclaration;
-	private TransitionStatementElements pTransitionStatement;
+	private StatechartSpecificationElements pStatechartSpecification;
+	private StateSpecificationElements pStateSpecification;
+	private TransitionSpecificationElements pTransitionSpecification;
 	private ScopeElements pScope;
-	private SimpleScopeElements pSimpleScope;
+	private StateScopeElements pStateScope;
 	private StatechartScopeElements pStatechartScope;
 	private InterfaceScopeElements pInterfaceScope;
 	private InternalScopeElements pInternalScope;
@@ -2842,7 +2858,6 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	private EventDerivationElements pEventDerivation;
 	private DirectionElements unknownRuleDirection;
 	private VariableDefinitionElements pVariableDefinition;
-	private ClockElements pClock;
 	private OperationElements pOperation;
 	private EntrypointElements pEntrypoint;
 	private ExitpointElements pExitpoint;
@@ -2953,7 +2968,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//StatechartRoot:
-	//	"@@statechart@@" def=StatechartDefinition;
+	//	"@@statechart@@" def=StatechartSpecification;
 	public StatechartRootElements getStatechartRootAccess() {
 		return (pStatechartRoot != null) ? pStatechartRoot : (pStatechartRoot = new StatechartRootElements());
 	}
@@ -2963,7 +2978,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//StateRoot:
-	//	"@@state@@" def=StateDeclaration;
+	//	"@@state@@" def=StateSpecification;
 	public StateRootElements getStateRootAccess() {
 		return (pStateRoot != null) ? pStateRoot : (pStateRoot = new StateRootElements());
 	}
@@ -2973,7 +2988,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//TransitionRoot:
-	//	"@@transition@@" def=TransitionStatement;
+	//	"@@transition@@" def=TransitionSpecification;
 	public TransitionRootElements getTransitionRootAccess() {
 		return (pTransitionRoot != null) ? pTransitionRoot : (pTransitionRoot = new TransitionRootElements());
 	}
@@ -2984,40 +2999,40 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 
 	/// * ---- start rules ----
 	//Define the starting points used by the statechart integration. These rules hook in the concrete rules of the specific grammar.
-	// * / StatechartDefinition:
-	//	{StatechartDefinition} ("namespace" namespace=FQN)? definitionScopes+=StatechartScope*;
-	public StatechartDefinitionElements getStatechartDefinitionAccess() {
-		return (pStatechartDefinition != null) ? pStatechartDefinition : (pStatechartDefinition = new StatechartDefinitionElements());
+	// * / StatechartSpecification:
+	//	{StatechartSpecification} ("namespace" namespace=FQN)? definitionScopes+=StatechartScope*;
+	public StatechartSpecificationElements getStatechartSpecificationAccess() {
+		return (pStatechartSpecification != null) ? pStatechartSpecification : (pStatechartSpecification = new StatechartSpecificationElements());
 	}
 	
-	public ParserRule getStatechartDefinitionRule() {
-		return getStatechartDefinitionAccess().getRule();
+	public ParserRule getStatechartSpecificationRule() {
+		return getStatechartSpecificationAccess().getRule();
 	}
 
-	//StateDeclaration:
-	//	scope=SimpleScope;
-	public StateDeclarationElements getStateDeclarationAccess() {
-		return (pStateDeclaration != null) ? pStateDeclaration : (pStateDeclaration = new StateDeclarationElements());
+	//StateSpecification:
+	//	scope=StateScope;
+	public StateSpecificationElements getStateSpecificationAccess() {
+		return (pStateSpecification != null) ? pStateSpecification : (pStateSpecification = new StateSpecificationElements());
 	}
 	
-	public ParserRule getStateDeclarationRule() {
-		return getStateDeclarationAccess().getRule();
+	public ParserRule getStateSpecificationRule() {
+		return getStateSpecificationAccess().getRule();
 	}
 
-	//TransitionStatement: //	Reaction;
-	//	TransitionReaction;
-	public TransitionStatementElements getTransitionStatementAccess() {
-		return (pTransitionStatement != null) ? pTransitionStatement : (pTransitionStatement = new TransitionStatementElements());
+	//TransitionSpecification:
+	//	reaction=TransitionReaction;
+	public TransitionSpecificationElements getTransitionSpecificationAccess() {
+		return (pTransitionSpecification != null) ? pTransitionSpecification : (pTransitionSpecification = new TransitionSpecificationElements());
 	}
 	
-	public ParserRule getTransitionStatementRule() {
-		return getTransitionStatementAccess().getRule();
+	public ParserRule getTransitionSpecificationRule() {
+		return getTransitionSpecificationAccess().getRule();
 	}
 
 	/// * ---- scope rules ----
 	//Defines different kinds of scopes that contain element definitions. Scopes are used for element definitions in statechart, regions, and state 
 	// * / Scope returns sct::Scope:
-	//	SimpleScope | StatechartScope;
+	//	StateScope | StatechartScope;
 	public ScopeElements getScopeAccess() {
 		return (pScope != null) ? pScope : (pScope = new ScopeElements());
 	}
@@ -3027,14 +3042,14 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//// a SimpleScope is used for states and regions
-	//SimpleScope returns sct::Scope:
-	//	{SimpleScope} declarations+=Declaration*;
-	public SimpleScopeElements getSimpleScopeAccess() {
-		return (pSimpleScope != null) ? pSimpleScope : (pSimpleScope = new SimpleScopeElements());
+	//StateScope returns sct::Scope:
+	//	{SimpleScope} declarations+=(LocalReaction | Entrypoint | Exitpoint)*;
+	public StateScopeElements getStateScopeAccess() {
+		return (pStateScope != null) ? pStateScope : (pStateScope = new StateScopeElements());
 	}
 	
-	public ParserRule getSimpleScopeRule() {
-		return getSimpleScopeAccess().getRule();
+	public ParserRule getStateScopeRule() {
+		return getStateScopeAccess().getRule();
 	}
 
 	//// defines the poosible scopes for statecharts
@@ -3049,7 +3064,8 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//InterfaceScope returns sct::Scope:
-	//	{InterfaceScope} "interface" name=ID? ":" declarations+=Declaration*;
+	//	{InterfaceScope} "interface" name=ID? ":" declarations+=(EventDefinition | VariableDefinition | Entrypoint |
+	//	Exitpoint)*;
 	public InterfaceScopeElements getInterfaceScopeAccess() {
 		return (pInterfaceScope != null) ? pInterfaceScope : (pInterfaceScope = new InterfaceScopeElements());
 	}
@@ -3059,7 +3075,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//InternalScope returns sct::Scope:
-	//	{InternalScope} "internal" ":" declarations+=Declaration*;
+	//	{InternalScope} "internal" ":" declarations+=(EventDefinition | VariableDefinition | Operation | LocalReaction)*;
 	public InternalScopeElements getInternalScopeAccess() {
 		return (pInternalScope != null) ? pInternalScope : (pInternalScope = new InternalScopeElements());
 	}
@@ -3070,7 +3086,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 
 	/// * ---- declarations ----
 	//a definition is a top level element of a definition scope. * / Declaration returns sct::Declaration:
-	//	EventDefinition | VariableDefinition | Clock | Operation | LocalReaction | Entrypoint | Exitpoint;
+	//	EventDefinition | VariableDefinition | Operation | LocalReaction | Entrypoint | Exitpoint;
 	public DeclarationElements getDeclarationAccess() {
 		return (pDeclaration != null) ? pDeclaration : (pDeclaration = new DeclarationElements());
 	}
@@ -3121,17 +3137,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		return getVariableDefinitionAccess().getRule();
 	}
 
-	/// * ---- clock definition ---- * / Clock returns sct::Declaration:
-	//	{Clock} "clock" name=ID;
-	public ClockElements getClockAccess() {
-		return (pClock != null) ? pClock : (pClock = new ClockElements());
-	}
-	
-	public ParserRule getClockRule() {
-		return getClockAccess().getRule();
-	}
-
-	/// * ---- clock definition ---- * / Operation returns sct::Declaration:
+	/// * ---- operation definition ---- * / Operation returns sct::Declaration:
 	//	{Operation} "operation" name=ID "(" (paramTypes+=Type ("," paramTypes+=Type)*)? ")" (":" type=Type)?;
 	public OperationElements getOperationAccess() {
 		return (pOperation != null) ? pOperation : (pOperation = new OperationElements());
@@ -3315,7 +3321,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		return getTimeEventTypeAccess().getRule();
 	}
 
-	//// TODO: add dereived events like in(state), entered(state)	
+	////TODO: Group OnCycleEvent and AlwaysEvent, maybe replace it by a DoEvent
 	//BuiltinEventSpec:
 	//	EntryEvent | ExitEvent | OnCycleEvent | AlwaysEvent | DefaultEvent;
 	public BuiltinEventSpecElements getBuiltinEventSpecAccess() {

+ 0 - 23
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/Clock.java

@@ -1,23 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
-
- */
-package org.yakindu.sct.model.stext.stext;
-
-import org.yakindu.sct.model.sgraph.Declaration;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Clock</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.yakindu.sct.model.stext.stext.StextPackage#getClock()
- * @model
- * @generated
- */
-public interface Clock extends Declaration
-{
-} // Clock

+ 3 - 3
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StateRoot.java

@@ -34,12 +34,12 @@ public interface StateRoot extends DefRoot
    * </p>
    * <!-- end-user-doc -->
    * @return the value of the '<em>Def</em>' containment reference.
-   * @see #setDef(StateDeclaration)
+   * @see #setDef(StateSpecification)
    * @see org.yakindu.sct.model.stext.stext.StextPackage#getStateRoot_Def()
    * @model containment="true"
    * @generated
    */
-  StateDeclaration getDef();
+  StateSpecification getDef();
 
   /**
    * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.StateRoot#getDef <em>Def</em>}' containment reference.
@@ -49,6 +49,6 @@ public interface StateRoot extends DefRoot
    * @see #getDef()
    * @generated
    */
-  void setDef(StateDeclaration value);
+  void setDef(StateSpecification value);
 
 } // StateRoot

+ 7 - 7
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StateDeclaration.java

@@ -12,21 +12,21 @@ import org.yakindu.sct.model.sgraph.Scope;
 
 /**
  * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>State Declaration</b></em>'.
+ * A representation of the model object '<em><b>State Specification</b></em>'.
  * <!-- end-user-doc -->
  *
  * <p>
  * The following features are supported:
  * <ul>
- *   <li>{@link org.yakindu.sct.model.stext.stext.StateDeclaration#getScope <em>Scope</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.StateSpecification#getScope <em>Scope</em>}</li>
  * </ul>
  * </p>
  *
- * @see org.yakindu.sct.model.stext.stext.StextPackage#getStateDeclaration()
+ * @see org.yakindu.sct.model.stext.stext.StextPackage#getStateSpecification()
  * @model
  * @generated
  */
-public interface StateDeclaration extends EObject
+public interface StateSpecification extends EObject
 {
   /**
    * Returns the value of the '<em><b>Scope</b></em>' containment reference.
@@ -38,14 +38,14 @@ public interface StateDeclaration extends EObject
    * <!-- end-user-doc -->
    * @return the value of the '<em>Scope</em>' containment reference.
    * @see #setScope(Scope)
-   * @see org.yakindu.sct.model.stext.stext.StextPackage#getStateDeclaration_Scope()
+   * @see org.yakindu.sct.model.stext.stext.StextPackage#getStateSpecification_Scope()
    * @model containment="true"
    * @generated
    */
   Scope getScope();
 
   /**
-   * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.StateDeclaration#getScope <em>Scope</em>}' containment reference.
+   * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.StateSpecification#getScope <em>Scope</em>}' containment reference.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @param value the new value of the '<em>Scope</em>' containment reference.
@@ -54,4 +54,4 @@ public interface StateDeclaration extends EObject
    */
   void setScope(Scope value);
 
-} // StateDeclaration
+} // StateSpecification

+ 3 - 3
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StatechartRoot.java

@@ -34,12 +34,12 @@ public interface StatechartRoot extends DefRoot
    * </p>
    * <!-- end-user-doc -->
    * @return the value of the '<em>Def</em>' containment reference.
-   * @see #setDef(StatechartDefinition)
+   * @see #setDef(StatechartSpecification)
    * @see org.yakindu.sct.model.stext.stext.StextPackage#getStatechartRoot_Def()
    * @model containment="true"
    * @generated
    */
-  StatechartDefinition getDef();
+  StatechartSpecification getDef();
 
   /**
    * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.StatechartRoot#getDef <em>Def</em>}' containment reference.
@@ -49,6 +49,6 @@ public interface StatechartRoot extends DefRoot
    * @see #getDef()
    * @generated
    */
-  void setDef(StatechartDefinition value);
+  void setDef(StatechartSpecification value);
 
 } // StatechartRoot

+ 9 - 9
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StatechartDefinition.java

@@ -14,22 +14,22 @@ import org.yakindu.sct.model.sgraph.Scope;
 
 /**
  * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Statechart Definition</b></em>'.
+ * A representation of the model object '<em><b>Statechart Specification</b></em>'.
  * <!-- end-user-doc -->
  *
  * <p>
  * The following features are supported:
  * <ul>
- *   <li>{@link org.yakindu.sct.model.stext.stext.StatechartDefinition#getNamespace <em>Namespace</em>}</li>
- *   <li>{@link org.yakindu.sct.model.stext.stext.StatechartDefinition#getDefinitionScopes <em>Definition Scopes</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.StatechartSpecification#getNamespace <em>Namespace</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.StatechartSpecification#getDefinitionScopes <em>Definition Scopes</em>}</li>
  * </ul>
  * </p>
  *
- * @see org.yakindu.sct.model.stext.stext.StextPackage#getStatechartDefinition()
+ * @see org.yakindu.sct.model.stext.stext.StextPackage#getStatechartSpecification()
  * @model
  * @generated
  */
-public interface StatechartDefinition extends EObject
+public interface StatechartSpecification extends EObject
 {
   /**
    * Returns the value of the '<em><b>Namespace</b></em>' attribute.
@@ -41,14 +41,14 @@ public interface StatechartDefinition extends EObject
    * <!-- end-user-doc -->
    * @return the value of the '<em>Namespace</em>' attribute.
    * @see #setNamespace(String)
-   * @see org.yakindu.sct.model.stext.stext.StextPackage#getStatechartDefinition_Namespace()
+   * @see org.yakindu.sct.model.stext.stext.StextPackage#getStatechartSpecification_Namespace()
    * @model
    * @generated
    */
   String getNamespace();
 
   /**
-   * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.StatechartDefinition#getNamespace <em>Namespace</em>}' attribute.
+   * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.StatechartSpecification#getNamespace <em>Namespace</em>}' attribute.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @param value the new value of the '<em>Namespace</em>' attribute.
@@ -67,10 +67,10 @@ public interface StatechartDefinition extends EObject
    * </p>
    * <!-- end-user-doc -->
    * @return the value of the '<em>Definition Scopes</em>' containment reference list.
-   * @see org.yakindu.sct.model.stext.stext.StextPackage#getStatechartDefinition_DefinitionScopes()
+   * @see org.yakindu.sct.model.stext.stext.StextPackage#getStatechartSpecification_DefinitionScopes()
    * @model containment="true"
    * @generated
    */
   EList<Scope> getDefinitionScopes();
 
-} // StatechartDefinition
+} // StatechartSpecification

+ 9 - 18
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StextFactory.java

@@ -72,31 +72,31 @@ public interface StextFactory extends EFactory
   TransitionRoot createTransitionRoot();
 
   /**
-   * Returns a new object of class '<em>Statechart Definition</em>'.
+   * Returns a new object of class '<em>Statechart Specification</em>'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @return a new object of class '<em>Statechart Definition</em>'.
+   * @return a new object of class '<em>Statechart Specification</em>'.
    * @generated
    */
-  StatechartDefinition createStatechartDefinition();
+  StatechartSpecification createStatechartSpecification();
 
   /**
-   * Returns a new object of class '<em>State Declaration</em>'.
+   * Returns a new object of class '<em>State Specification</em>'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @return a new object of class '<em>State Declaration</em>'.
+   * @return a new object of class '<em>State Specification</em>'.
    * @generated
    */
-  StateDeclaration createStateDeclaration();
+  StateSpecification createStateSpecification();
 
   /**
-   * Returns a new object of class '<em>Transition Statement</em>'.
+   * Returns a new object of class '<em>Transition Specification</em>'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @return a new object of class '<em>Transition Statement</em>'.
+   * @return a new object of class '<em>Transition Specification</em>'.
    * @generated
    */
-  TransitionStatement createTransitionStatement();
+  TransitionSpecification createTransitionSpecification();
 
   /**
    * Returns a new object of class '<em>Event Derivation</em>'.
@@ -404,15 +404,6 @@ public interface StextFactory extends EFactory
    */
   VariableDefinition createVariableDefinition();
 
-  /**
-   * Returns a new object of class '<em>Clock</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Clock</em>'.
-   * @generated
-   */
-  Clock createClock();
-
   /**
    * Returns a new object of class '<em>Operation</em>'.
    * <!-- begin-user-doc -->

+ 121 - 141
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StextPackage.java

@@ -195,14 +195,14 @@ public interface StextPackage extends EPackage
   int TRANSITION_ROOT_FEATURE_COUNT = DEF_ROOT_FEATURE_COUNT + 1;
 
   /**
-   * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.StatechartDefinitionImpl <em>Statechart Definition</em>}' class.
+   * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.StatechartSpecificationImpl <em>Statechart Specification</em>}' class.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @see org.yakindu.sct.model.stext.stext.impl.StatechartDefinitionImpl
-   * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getStatechartDefinition()
+   * @see org.yakindu.sct.model.stext.stext.impl.StatechartSpecificationImpl
+   * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getStatechartSpecification()
    * @generated
    */
-  int STATECHART_DEFINITION = 5;
+  int STATECHART_SPECIFICATION = 5;
 
   /**
    * The feature id for the '<em><b>Namespace</b></em>' attribute.
@@ -211,7 +211,7 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int STATECHART_DEFINITION__NAMESPACE = 0;
+  int STATECHART_SPECIFICATION__NAMESPACE = 0;
 
   /**
    * The feature id for the '<em><b>Definition Scopes</b></em>' containment reference list.
@@ -220,26 +220,26 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int STATECHART_DEFINITION__DEFINITION_SCOPES = 1;
+  int STATECHART_SPECIFICATION__DEFINITION_SCOPES = 1;
 
   /**
-   * The number of structural features of the '<em>Statechart Definition</em>' class.
+   * The number of structural features of the '<em>Statechart Specification</em>' class.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @generated
    * @ordered
    */
-  int STATECHART_DEFINITION_FEATURE_COUNT = 2;
+  int STATECHART_SPECIFICATION_FEATURE_COUNT = 2;
 
   /**
-   * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.StateDeclarationImpl <em>State Declaration</em>}' class.
+   * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.StateSpecificationImpl <em>State Specification</em>}' class.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @see org.yakindu.sct.model.stext.stext.impl.StateDeclarationImpl
-   * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getStateDeclaration()
+   * @see org.yakindu.sct.model.stext.stext.impl.StateSpecificationImpl
+   * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getStateSpecification()
    * @generated
    */
-  int STATE_DECLARATION = 6;
+  int STATE_SPECIFICATION = 6;
 
   /**
    * The feature id for the '<em><b>Scope</b></em>' containment reference.
@@ -248,35 +248,44 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int STATE_DECLARATION__SCOPE = 0;
+  int STATE_SPECIFICATION__SCOPE = 0;
 
   /**
-   * The number of structural features of the '<em>State Declaration</em>' class.
+   * The number of structural features of the '<em>State Specification</em>' class.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @generated
    * @ordered
    */
-  int STATE_DECLARATION_FEATURE_COUNT = 1;
+  int STATE_SPECIFICATION_FEATURE_COUNT = 1;
 
   /**
-   * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.TransitionStatementImpl <em>Transition Statement</em>}' class.
+   * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.TransitionSpecificationImpl <em>Transition Specification</em>}' class.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @see org.yakindu.sct.model.stext.stext.impl.TransitionStatementImpl
-   * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getTransitionStatement()
+   * @see org.yakindu.sct.model.stext.stext.impl.TransitionSpecificationImpl
+   * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getTransitionSpecification()
    * @generated
    */
-  int TRANSITION_STATEMENT = 7;
+  int TRANSITION_SPECIFICATION = 7;
 
   /**
-   * The number of structural features of the '<em>Transition Statement</em>' class.
+   * The feature id for the '<em><b>Reaction</b></em>' containment reference.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @generated
    * @ordered
    */
-  int TRANSITION_STATEMENT_FEATURE_COUNT = 0;
+  int TRANSITION_SPECIFICATION__REACTION = 0;
+
+  /**
+   * The number of structural features of the '<em>Transition Specification</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TRANSITION_SPECIFICATION_FEATURE_COUNT = 1;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.EventDerivationImpl <em>Event Derivation</em>}' class.
@@ -387,7 +396,7 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int TRANSITION_REACTION__TRIGGER = TRANSITION_STATEMENT_FEATURE_COUNT + 0;
+  int TRANSITION_REACTION__TRIGGER = SGraphPackage.REACTION__TRIGGER;
 
   /**
    * The feature id for the '<em><b>Effect</b></em>' containment reference.
@@ -396,7 +405,7 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int TRANSITION_REACTION__EFFECT = TRANSITION_STATEMENT_FEATURE_COUNT + 1;
+  int TRANSITION_REACTION__EFFECT = SGraphPackage.REACTION__EFFECT;
 
   /**
    * The feature id for the '<em><b>Properties</b></em>' containment reference.
@@ -405,7 +414,7 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int TRANSITION_REACTION__PROPERTIES = TRANSITION_STATEMENT_FEATURE_COUNT + 2;
+  int TRANSITION_REACTION__PROPERTIES = SGraphPackage.REACTION_FEATURE_COUNT + 0;
 
   /**
    * The number of structural features of the '<em>Transition Reaction</em>' class.
@@ -414,7 +423,7 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int TRANSITION_REACTION_FEATURE_COUNT = TRANSITION_STATEMENT_FEATURE_COUNT + 3;
+  int TRANSITION_REACTION_FEATURE_COUNT = SGraphPackage.REACTION_FEATURE_COUNT + 1;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.ReactionPropertiesImpl <em>Reaction Properties</em>}' class.
@@ -1365,34 +1374,6 @@ public interface StextPackage extends EPackage
    */
   int VARIABLE_DEFINITION_FEATURE_COUNT = SGraphPackage.VARIABLE_FEATURE_COUNT + 4;
 
-  /**
-   * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.ClockImpl <em>Clock</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see org.yakindu.sct.model.stext.stext.impl.ClockImpl
-   * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getClock()
-   * @generated
-   */
-  int CLOCK = 42;
-
-  /**
-   * The feature id for the '<em><b>Name</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int CLOCK__NAME = SGraphPackage.DECLARATION__NAME;
-
-  /**
-   * The number of structural features of the '<em>Clock</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int CLOCK_FEATURE_COUNT = SGraphPackage.DECLARATION_FEATURE_COUNT + 0;
-
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.OperationImpl <em>Operation</em>}' class.
    * <!-- begin-user-doc -->
@@ -1401,7 +1382,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getOperation()
    * @generated
    */
-  int OPERATION = 43;
+  int OPERATION = 42;
 
   /**
    * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1447,7 +1428,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getEntrypoint()
    * @generated
    */
-  int ENTRYPOINT = 44;
+  int ENTRYPOINT = 43;
 
   /**
    * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1475,7 +1456,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getExitpoint()
    * @generated
    */
-  int EXITPOINT = 45;
+  int EXITPOINT = 44;
 
   /**
    * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1503,7 +1484,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getReactionTrigger()
    * @generated
    */
-  int REACTION_TRIGGER = 46;
+  int REACTION_TRIGGER = 45;
 
   /**
    * The feature id for the '<em><b>Triggers</b></em>' containment reference list.
@@ -1540,7 +1521,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getReactionEffect()
    * @generated
    */
-  int REACTION_EFFECT = 47;
+  int REACTION_EFFECT = 46;
 
   /**
    * The feature id for the '<em><b>Actions</b></em>' containment reference list.
@@ -1568,7 +1549,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getConditionalExpression()
    * @generated
    */
-  int CONDITIONAL_EXPRESSION = 48;
+  int CONDITIONAL_EXPRESSION = 47;
 
   /**
    * The feature id for the '<em><b>Condition</b></em>' containment reference.
@@ -1614,7 +1595,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getLogicalOrExpression()
    * @generated
    */
-  int LOGICAL_OR_EXPRESSION = 49;
+  int LOGICAL_OR_EXPRESSION = 48;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1651,7 +1632,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getLogicalAndExpression()
    * @generated
    */
-  int LOGICAL_AND_EXPRESSION = 50;
+  int LOGICAL_AND_EXPRESSION = 49;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1688,7 +1669,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getLogicalNotExpression()
    * @generated
    */
-  int LOGICAL_NOT_EXPRESSION = 51;
+  int LOGICAL_NOT_EXPRESSION = 50;
 
   /**
    * The feature id for the '<em><b>Operand</b></em>' containment reference.
@@ -1716,7 +1697,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getBitwiseXorExpression()
    * @generated
    */
-  int BITWISE_XOR_EXPRESSION = 52;
+  int BITWISE_XOR_EXPRESSION = 51;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1753,7 +1734,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getBitwiseOrExpression()
    * @generated
    */
-  int BITWISE_OR_EXPRESSION = 53;
+  int BITWISE_OR_EXPRESSION = 52;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1790,7 +1771,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getBitwiseAndExpression()
    * @generated
    */
-  int BITWISE_AND_EXPRESSION = 54;
+  int BITWISE_AND_EXPRESSION = 53;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1827,7 +1808,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getLogicalRelationExpression()
    * @generated
    */
-  int LOGICAL_RELATION_EXPRESSION = 55;
+  int LOGICAL_RELATION_EXPRESSION = 54;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1873,7 +1854,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getShiftExpression()
    * @generated
    */
-  int SHIFT_EXPRESSION = 56;
+  int SHIFT_EXPRESSION = 55;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1919,7 +1900,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getNumericalAddSubtractExpression()
    * @generated
    */
-  int NUMERICAL_ADD_SUBTRACT_EXPRESSION = 57;
+  int NUMERICAL_ADD_SUBTRACT_EXPRESSION = 56;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -1965,7 +1946,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getNumericalMultiplyDivideExpression()
    * @generated
    */
-  int NUMERICAL_MULTIPLY_DIVIDE_EXPRESSION = 58;
+  int NUMERICAL_MULTIPLY_DIVIDE_EXPRESSION = 57;
 
   /**
    * The feature id for the '<em><b>Left Operand</b></em>' containment reference.
@@ -2011,7 +1992,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getNumericalUnaryExpression()
    * @generated
    */
-  int NUMERICAL_UNARY_EXPRESSION = 59;
+  int NUMERICAL_UNARY_EXPRESSION = 58;
 
   /**
    * The feature id for the '<em><b>Operator</b></em>' attribute.
@@ -2048,7 +2029,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getPrimitiveValueExpression()
    * @generated
    */
-  int PRIMITIVE_VALUE_EXPRESSION = 60;
+  int PRIMITIVE_VALUE_EXPRESSION = 59;
 
   /**
    * The feature id for the '<em><b>Value</b></em>' containment reference.
@@ -2076,7 +2057,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getOperationCall()
    * @generated
    */
-  int OPERATION_CALL = 61;
+  int OPERATION_CALL = 60;
 
   /**
    * The feature id for the '<em><b>Operation</b></em>' reference.
@@ -2113,7 +2094,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getDirection()
    * @generated
    */
-  int DIRECTION = 62;
+  int DIRECTION = 61;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.TimeEventType <em>Time Event Type</em>}' enum.
@@ -2123,7 +2104,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getTimeEventType()
    * @generated
    */
-  int TIME_EVENT_TYPE = 63;
+  int TIME_EVENT_TYPE = 62;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.AssignmentOperator <em>Assignment Operator</em>}' enum.
@@ -2133,7 +2114,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getAssignmentOperator()
    * @generated
    */
-  int ASSIGNMENT_OPERATOR = 64;
+  int ASSIGNMENT_OPERATOR = 63;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.ShiftOperator <em>Shift Operator</em>}' enum.
@@ -2143,7 +2124,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getShiftOperator()
    * @generated
    */
-  int SHIFT_OPERATOR = 65;
+  int SHIFT_OPERATOR = 64;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.AdditiveOperator <em>Additive Operator</em>}' enum.
@@ -2153,7 +2134,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getAdditiveOperator()
    * @generated
    */
-  int ADDITIVE_OPERATOR = 66;
+  int ADDITIVE_OPERATOR = 65;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.MultiplicativeOperator <em>Multiplicative Operator</em>}' enum.
@@ -2163,7 +2144,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getMultiplicativeOperator()
    * @generated
    */
-  int MULTIPLICATIVE_OPERATOR = 67;
+  int MULTIPLICATIVE_OPERATOR = 66;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.UnaryOperator <em>Unary Operator</em>}' enum.
@@ -2173,7 +2154,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getUnaryOperator()
    * @generated
    */
-  int UNARY_OPERATOR = 68;
+  int UNARY_OPERATOR = 67;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.RelationalOperator <em>Relational Operator</em>}' enum.
@@ -2183,7 +2164,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getRelationalOperator()
    * @generated
    */
-  int RELATIONAL_OPERATOR = 69;
+  int RELATIONAL_OPERATOR = 68;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.TimeUnit <em>Time Unit</em>}' enum.
@@ -2193,7 +2174,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getTimeUnit()
    * @generated
    */
-  int TIME_UNIT = 70;
+  int TIME_UNIT = 69;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.Type <em>Type</em>}' enum.
@@ -2203,7 +2184,7 @@ public interface StextPackage extends EPackage
    * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getType()
    * @generated
    */
-  int TYPE = 71;
+  int TYPE = 70;
 
 
   /**
@@ -2301,67 +2282,78 @@ public interface StextPackage extends EPackage
   EReference getTransitionRoot_Def();
 
   /**
-   * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.StatechartDefinition <em>Statechart Definition</em>}'.
+   * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.StatechartSpecification <em>Statechart Specification</em>}'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Statechart Definition</em>'.
-   * @see org.yakindu.sct.model.stext.stext.StatechartDefinition
+   * @return the meta object for class '<em>Statechart Specification</em>'.
+   * @see org.yakindu.sct.model.stext.stext.StatechartSpecification
    * @generated
    */
-  EClass getStatechartDefinition();
+  EClass getStatechartSpecification();
 
   /**
-   * Returns the meta object for the attribute '{@link org.yakindu.sct.model.stext.stext.StatechartDefinition#getNamespace <em>Namespace</em>}'.
+   * Returns the meta object for the attribute '{@link org.yakindu.sct.model.stext.stext.StatechartSpecification#getNamespace <em>Namespace</em>}'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @return the meta object for the attribute '<em>Namespace</em>'.
-   * @see org.yakindu.sct.model.stext.stext.StatechartDefinition#getNamespace()
-   * @see #getStatechartDefinition()
+   * @see org.yakindu.sct.model.stext.stext.StatechartSpecification#getNamespace()
+   * @see #getStatechartSpecification()
    * @generated
    */
-  EAttribute getStatechartDefinition_Namespace();
+  EAttribute getStatechartSpecification_Namespace();
 
   /**
-   * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.stext.stext.StatechartDefinition#getDefinitionScopes <em>Definition Scopes</em>}'.
+   * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.stext.stext.StatechartSpecification#getDefinitionScopes <em>Definition Scopes</em>}'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @return the meta object for the containment reference list '<em>Definition Scopes</em>'.
-   * @see org.yakindu.sct.model.stext.stext.StatechartDefinition#getDefinitionScopes()
-   * @see #getStatechartDefinition()
+   * @see org.yakindu.sct.model.stext.stext.StatechartSpecification#getDefinitionScopes()
+   * @see #getStatechartSpecification()
    * @generated
    */
-  EReference getStatechartDefinition_DefinitionScopes();
+  EReference getStatechartSpecification_DefinitionScopes();
 
   /**
-   * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.StateDeclaration <em>State Declaration</em>}'.
+   * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.StateSpecification <em>State Specification</em>}'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @return the meta object for class '<em>State Declaration</em>'.
-   * @see org.yakindu.sct.model.stext.stext.StateDeclaration
+   * @return the meta object for class '<em>State Specification</em>'.
+   * @see org.yakindu.sct.model.stext.stext.StateSpecification
    * @generated
    */
-  EClass getStateDeclaration();
+  EClass getStateSpecification();
 
   /**
-   * Returns the meta object for the containment reference '{@link org.yakindu.sct.model.stext.stext.StateDeclaration#getScope <em>Scope</em>}'.
+   * Returns the meta object for the containment reference '{@link org.yakindu.sct.model.stext.stext.StateSpecification#getScope <em>Scope</em>}'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @return the meta object for the containment reference '<em>Scope</em>'.
-   * @see org.yakindu.sct.model.stext.stext.StateDeclaration#getScope()
-   * @see #getStateDeclaration()
+   * @see org.yakindu.sct.model.stext.stext.StateSpecification#getScope()
+   * @see #getStateSpecification()
    * @generated
    */
-  EReference getStateDeclaration_Scope();
+  EReference getStateSpecification_Scope();
 
   /**
-   * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.TransitionStatement <em>Transition Statement</em>}'.
+   * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.TransitionSpecification <em>Transition Specification</em>}'.
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Transition Statement</em>'.
-   * @see org.yakindu.sct.model.stext.stext.TransitionStatement
+   * @return the meta object for class '<em>Transition Specification</em>'.
+   * @see org.yakindu.sct.model.stext.stext.TransitionSpecification
    * @generated
    */
-  EClass getTransitionStatement();
+  EClass getTransitionSpecification();
+
+  /**
+   * Returns the meta object for the containment reference '{@link org.yakindu.sct.model.stext.stext.TransitionSpecification#getReaction <em>Reaction</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Reaction</em>'.
+   * @see org.yakindu.sct.model.stext.stext.TransitionSpecification#getReaction()
+   * @see #getTransitionSpecification()
+   * @generated
+   */
+  EReference getTransitionSpecification_Reaction();
 
   /**
    * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.EventDerivation <em>Event Derivation</em>}'.
@@ -3066,16 +3058,6 @@ public interface StextPackage extends EPackage
    */
   EReference getVariableDefinition_InitialValue();
 
-  /**
-   * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.Clock <em>Clock</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Clock</em>'.
-   * @see org.yakindu.sct.model.stext.stext.Clock
-   * @generated
-   */
-  EClass getClock();
-
   /**
    * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.Operation <em>Operation</em>}'.
    * <!-- begin-user-doc -->
@@ -3868,14 +3850,14 @@ public interface StextPackage extends EPackage
     EReference TRANSITION_ROOT__DEF = eINSTANCE.getTransitionRoot_Def();
 
     /**
-     * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.StatechartDefinitionImpl <em>Statechart Definition</em>}' class.
+     * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.StatechartSpecificationImpl <em>Statechart Specification</em>}' class.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see org.yakindu.sct.model.stext.stext.impl.StatechartDefinitionImpl
-     * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getStatechartDefinition()
+     * @see org.yakindu.sct.model.stext.stext.impl.StatechartSpecificationImpl
+     * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getStatechartSpecification()
      * @generated
      */
-    EClass STATECHART_DEFINITION = eINSTANCE.getStatechartDefinition();
+    EClass STATECHART_SPECIFICATION = eINSTANCE.getStatechartSpecification();
 
     /**
      * The meta object literal for the '<em><b>Namespace</b></em>' attribute feature.
@@ -3883,7 +3865,7 @@ public interface StextPackage extends EPackage
      * <!-- end-user-doc -->
      * @generated
      */
-    EAttribute STATECHART_DEFINITION__NAMESPACE = eINSTANCE.getStatechartDefinition_Namespace();
+    EAttribute STATECHART_SPECIFICATION__NAMESPACE = eINSTANCE.getStatechartSpecification_Namespace();
 
     /**
      * The meta object literal for the '<em><b>Definition Scopes</b></em>' containment reference list feature.
@@ -3891,17 +3873,17 @@ public interface StextPackage extends EPackage
      * <!-- end-user-doc -->
      * @generated
      */
-    EReference STATECHART_DEFINITION__DEFINITION_SCOPES = eINSTANCE.getStatechartDefinition_DefinitionScopes();
+    EReference STATECHART_SPECIFICATION__DEFINITION_SCOPES = eINSTANCE.getStatechartSpecification_DefinitionScopes();
 
     /**
-     * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.StateDeclarationImpl <em>State Declaration</em>}' class.
+     * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.StateSpecificationImpl <em>State Specification</em>}' class.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see org.yakindu.sct.model.stext.stext.impl.StateDeclarationImpl
-     * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getStateDeclaration()
+     * @see org.yakindu.sct.model.stext.stext.impl.StateSpecificationImpl
+     * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getStateSpecification()
      * @generated
      */
-    EClass STATE_DECLARATION = eINSTANCE.getStateDeclaration();
+    EClass STATE_SPECIFICATION = eINSTANCE.getStateSpecification();
 
     /**
      * The meta object literal for the '<em><b>Scope</b></em>' containment reference feature.
@@ -3909,17 +3891,25 @@ public interface StextPackage extends EPackage
      * <!-- end-user-doc -->
      * @generated
      */
-    EReference STATE_DECLARATION__SCOPE = eINSTANCE.getStateDeclaration_Scope();
+    EReference STATE_SPECIFICATION__SCOPE = eINSTANCE.getStateSpecification_Scope();
+
+    /**
+     * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.TransitionSpecificationImpl <em>Transition Specification</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.yakindu.sct.model.stext.stext.impl.TransitionSpecificationImpl
+     * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getTransitionSpecification()
+     * @generated
+     */
+    EClass TRANSITION_SPECIFICATION = eINSTANCE.getTransitionSpecification();
 
     /**
-     * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.TransitionStatementImpl <em>Transition Statement</em>}' class.
+     * The meta object literal for the '<em><b>Reaction</b></em>' containment reference feature.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see org.yakindu.sct.model.stext.stext.impl.TransitionStatementImpl
-     * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getTransitionStatement()
      * @generated
      */
-    EClass TRANSITION_STATEMENT = eINSTANCE.getTransitionStatement();
+    EReference TRANSITION_SPECIFICATION__REACTION = eINSTANCE.getTransitionSpecification_Reaction();
 
     /**
      * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.EventDerivationImpl <em>Event Derivation</em>}' class.
@@ -4525,16 +4515,6 @@ public interface StextPackage extends EPackage
      */
     EReference VARIABLE_DEFINITION__INITIAL_VALUE = eINSTANCE.getVariableDefinition_InitialValue();
 
-    /**
-     * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.ClockImpl <em>Clock</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.yakindu.sct.model.stext.stext.impl.ClockImpl
-     * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getClock()
-     * @generated
-     */
-    EClass CLOCK = eINSTANCE.getClock();
-
     /**
      * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.OperationImpl <em>Operation</em>}' class.
      * <!-- begin-user-doc -->

+ 1 - 1
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TransitionReaction.java

@@ -24,7 +24,7 @@ import org.yakindu.sct.model.sgraph.Reaction;
  * @model
  * @generated
  */
-public interface TransitionReaction extends TransitionStatement, Reaction
+public interface TransitionReaction extends Reaction
 {
   /**
    * Returns the value of the '<em><b>Properties</b></em>' containment reference.

+ 3 - 3
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TransitionRoot.java

@@ -34,12 +34,12 @@ public interface TransitionRoot extends DefRoot
    * </p>
    * <!-- end-user-doc -->
    * @return the value of the '<em>Def</em>' containment reference.
-   * @see #setDef(TransitionStatement)
+   * @see #setDef(TransitionSpecification)
    * @see org.yakindu.sct.model.stext.stext.StextPackage#getTransitionRoot_Def()
    * @model containment="true"
    * @generated
    */
-  TransitionStatement getDef();
+  TransitionSpecification getDef();
 
   /**
    * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.TransitionRoot#getDef <em>Def</em>}' containment reference.
@@ -49,6 +49,6 @@ public interface TransitionRoot extends DefRoot
    * @see #getDef()
    * @generated
    */
-  void setDef(TransitionStatement value);
+  void setDef(TransitionSpecification value);
 
 } // TransitionRoot

+ 55 - 0
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TransitionSpecification.java

@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.yakindu.sct.model.stext.stext;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transition Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.TransitionSpecification#getReaction <em>Reaction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.yakindu.sct.model.stext.stext.StextPackage#getTransitionSpecification()
+ * @model
+ * @generated
+ */
+public interface TransitionSpecification extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Reaction</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Reaction</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Reaction</em>' containment reference.
+   * @see #setReaction(TransitionReaction)
+   * @see org.yakindu.sct.model.stext.stext.StextPackage#getTransitionSpecification_Reaction()
+   * @model containment="true"
+   * @generated
+   */
+  TransitionReaction getReaction();
+
+  /**
+   * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.TransitionSpecification#getReaction <em>Reaction</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Reaction</em>' containment reference.
+   * @see #getReaction()
+   * @generated
+   */
+  void setReaction(TransitionReaction value);
+
+} // TransitionSpecification

+ 0 - 23
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TransitionStatement.java

@@ -1,23 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
-
- */
-package org.yakindu.sct.model.stext.stext;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Transition Statement</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.yakindu.sct.model.stext.stext.StextPackage#getTransitionStatement()
- * @model
- * @generated
- */
-public interface TransitionStatement extends EObject
-{
-} // TransitionStatement

+ 0 - 48
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/ClockImpl.java

@@ -1,48 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
-
- */
-package org.yakindu.sct.model.stext.stext.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.yakindu.sct.model.sgraph.impl.DeclarationImpl;
-
-import org.yakindu.sct.model.stext.stext.Clock;
-import org.yakindu.sct.model.stext.stext.StextPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Clock</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public class ClockImpl extends DeclarationImpl implements Clock
-{
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected ClockImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return StextPackage.Literals.CLOCK;
-  }
-
-} //ClockImpl

+ 8 - 8
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StateRootImpl.java

@@ -14,8 +14,8 @@ import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
-import org.yakindu.sct.model.stext.stext.StateDeclaration;
 import org.yakindu.sct.model.stext.stext.StateRoot;
+import org.yakindu.sct.model.stext.stext.StateSpecification;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
 /**
@@ -41,7 +41,7 @@ public class StateRootImpl extends DefRootImpl implements StateRoot
    * @generated
    * @ordered
    */
-  protected StateDeclaration def;
+  protected StateSpecification def;
 
   /**
    * <!-- begin-user-doc -->
@@ -69,7 +69,7 @@ public class StateRootImpl extends DefRootImpl implements StateRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public StateDeclaration getDef()
+  public StateSpecification getDef()
   {
     return def;
   }
@@ -79,9 +79,9 @@ public class StateRootImpl extends DefRootImpl implements StateRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public NotificationChain basicSetDef(StateDeclaration newDef, NotificationChain msgs)
+  public NotificationChain basicSetDef(StateSpecification newDef, NotificationChain msgs)
   {
-    StateDeclaration oldDef = def;
+    StateSpecification oldDef = def;
     def = newDef;
     if (eNotificationRequired())
     {
@@ -96,7 +96,7 @@ public class StateRootImpl extends DefRootImpl implements StateRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public void setDef(StateDeclaration newDef)
+  public void setDef(StateSpecification newDef)
   {
     if (newDef != def)
     {
@@ -155,7 +155,7 @@ public class StateRootImpl extends DefRootImpl implements StateRoot
     switch (featureID)
     {
       case StextPackage.STATE_ROOT__DEF:
-        setDef((StateDeclaration)newValue);
+        setDef((StateSpecification)newValue);
         return;
     }
     super.eSet(featureID, newValue);
@@ -172,7 +172,7 @@ public class StateRootImpl extends DefRootImpl implements StateRoot
     switch (featureID)
     {
       case StextPackage.STATE_ROOT__DEF:
-        setDef((StateDeclaration)null);
+        setDef((StateSpecification)null);
         return;
     }
     super.eUnset(featureID);

+ 16 - 16
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StateDeclarationImpl.java

@@ -17,23 +17,23 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
 import org.yakindu.sct.model.sgraph.Scope;
 
-import org.yakindu.sct.model.stext.stext.StateDeclaration;
+import org.yakindu.sct.model.stext.stext.StateSpecification;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>State Declaration</b></em>'.
+ * An implementation of the model object '<em><b>State Specification</b></em>'.
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
  * <ul>
- *   <li>{@link org.yakindu.sct.model.stext.stext.impl.StateDeclarationImpl#getScope <em>Scope</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.impl.StateSpecificationImpl#getScope <em>Scope</em>}</li>
  * </ul>
  * </p>
  *
  * @generated
  */
-public class StateDeclarationImpl extends MinimalEObjectImpl.Container implements StateDeclaration
+public class StateSpecificationImpl extends MinimalEObjectImpl.Container implements StateSpecification
 {
   /**
    * The cached value of the '{@link #getScope() <em>Scope</em>}' containment reference.
@@ -50,7 +50,7 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
    * <!-- end-user-doc -->
    * @generated
    */
-  protected StateDeclarationImpl()
+  protected StateSpecificationImpl()
   {
     super();
   }
@@ -63,7 +63,7 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
   @Override
   protected EClass eStaticClass()
   {
-    return StextPackage.Literals.STATE_DECLARATION;
+    return StextPackage.Literals.STATE_SPECIFICATION;
   }
 
   /**
@@ -87,7 +87,7 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
     scope = newScope;
     if (eNotificationRequired())
     {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StextPackage.STATE_DECLARATION__SCOPE, oldScope, newScope);
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StextPackage.STATE_SPECIFICATION__SCOPE, oldScope, newScope);
       if (msgs == null) msgs = notification; else msgs.add(notification);
     }
     return msgs;
@@ -104,14 +104,14 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
     {
       NotificationChain msgs = null;
       if (scope != null)
-        msgs = ((InternalEObject)scope).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StextPackage.STATE_DECLARATION__SCOPE, null, msgs);
+        msgs = ((InternalEObject)scope).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StextPackage.STATE_SPECIFICATION__SCOPE, null, msgs);
       if (newScope != null)
-        msgs = ((InternalEObject)newScope).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StextPackage.STATE_DECLARATION__SCOPE, null, msgs);
+        msgs = ((InternalEObject)newScope).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StextPackage.STATE_SPECIFICATION__SCOPE, null, msgs);
       msgs = basicSetScope(newScope, msgs);
       if (msgs != null) msgs.dispatch();
     }
     else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.STATE_DECLARATION__SCOPE, newScope, newScope));
+      eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.STATE_SPECIFICATION__SCOPE, newScope, newScope));
   }
 
   /**
@@ -124,7 +124,7 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
   {
     switch (featureID)
     {
-      case StextPackage.STATE_DECLARATION__SCOPE:
+      case StextPackage.STATE_SPECIFICATION__SCOPE:
         return basicSetScope(null, msgs);
     }
     return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -140,7 +140,7 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
   {
     switch (featureID)
     {
-      case StextPackage.STATE_DECLARATION__SCOPE:
+      case StextPackage.STATE_SPECIFICATION__SCOPE:
         return getScope();
     }
     return super.eGet(featureID, resolve, coreType);
@@ -156,7 +156,7 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
   {
     switch (featureID)
     {
-      case StextPackage.STATE_DECLARATION__SCOPE:
+      case StextPackage.STATE_SPECIFICATION__SCOPE:
         setScope((Scope)newValue);
         return;
     }
@@ -173,7 +173,7 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
   {
     switch (featureID)
     {
-      case StextPackage.STATE_DECLARATION__SCOPE:
+      case StextPackage.STATE_SPECIFICATION__SCOPE:
         setScope((Scope)null);
         return;
     }
@@ -190,10 +190,10 @@ public class StateDeclarationImpl extends MinimalEObjectImpl.Container implement
   {
     switch (featureID)
     {
-      case StextPackage.STATE_DECLARATION__SCOPE:
+      case StextPackage.STATE_SPECIFICATION__SCOPE:
         return scope != null;
     }
     return super.eIsSet(featureID);
   }
 
-} //StateDeclarationImpl
+} //StateSpecificationImpl

+ 8 - 8
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StatechartRootImpl.java

@@ -14,8 +14,8 @@ import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
-import org.yakindu.sct.model.stext.stext.StatechartDefinition;
 import org.yakindu.sct.model.stext.stext.StatechartRoot;
+import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
 /**
@@ -41,7 +41,7 @@ public class StatechartRootImpl extends DefRootImpl implements StatechartRoot
    * @generated
    * @ordered
    */
-  protected StatechartDefinition def;
+  protected StatechartSpecification def;
 
   /**
    * <!-- begin-user-doc -->
@@ -69,7 +69,7 @@ public class StatechartRootImpl extends DefRootImpl implements StatechartRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public StatechartDefinition getDef()
+  public StatechartSpecification getDef()
   {
     return def;
   }
@@ -79,9 +79,9 @@ public class StatechartRootImpl extends DefRootImpl implements StatechartRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public NotificationChain basicSetDef(StatechartDefinition newDef, NotificationChain msgs)
+  public NotificationChain basicSetDef(StatechartSpecification newDef, NotificationChain msgs)
   {
-    StatechartDefinition oldDef = def;
+    StatechartSpecification oldDef = def;
     def = newDef;
     if (eNotificationRequired())
     {
@@ -96,7 +96,7 @@ public class StatechartRootImpl extends DefRootImpl implements StatechartRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public void setDef(StatechartDefinition newDef)
+  public void setDef(StatechartSpecification newDef)
   {
     if (newDef != def)
     {
@@ -155,7 +155,7 @@ public class StatechartRootImpl extends DefRootImpl implements StatechartRoot
     switch (featureID)
     {
       case StextPackage.STATECHART_ROOT__DEF:
-        setDef((StatechartDefinition)newValue);
+        setDef((StatechartSpecification)newValue);
         return;
     }
     super.eSet(featureID, newValue);
@@ -172,7 +172,7 @@ public class StatechartRootImpl extends DefRootImpl implements StatechartRoot
     switch (featureID)
     {
       case StextPackage.STATECHART_ROOT__DEF:
-        setDef((StatechartDefinition)null);
+        setDef((StatechartSpecification)null);
         return;
     }
     super.eUnset(featureID);

+ 19 - 19
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StatechartDefinitionImpl.java

@@ -24,24 +24,24 @@ import org.eclipse.emf.ecore.util.InternalEList;
 
 import org.yakindu.sct.model.sgraph.Scope;
 
-import org.yakindu.sct.model.stext.stext.StatechartDefinition;
+import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Statechart Definition</b></em>'.
+ * An implementation of the model object '<em><b>Statechart Specification</b></em>'.
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
  * <ul>
- *   <li>{@link org.yakindu.sct.model.stext.stext.impl.StatechartDefinitionImpl#getNamespace <em>Namespace</em>}</li>
- *   <li>{@link org.yakindu.sct.model.stext.stext.impl.StatechartDefinitionImpl#getDefinitionScopes <em>Definition Scopes</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.impl.StatechartSpecificationImpl#getNamespace <em>Namespace</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.impl.StatechartSpecificationImpl#getDefinitionScopes <em>Definition Scopes</em>}</li>
  * </ul>
  * </p>
  *
  * @generated
  */
-public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container implements StatechartDefinition
+public class StatechartSpecificationImpl extends MinimalEObjectImpl.Container implements StatechartSpecification
 {
   /**
    * The default value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
@@ -78,7 +78,7 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
    * <!-- end-user-doc -->
    * @generated
    */
-  protected StatechartDefinitionImpl()
+  protected StatechartSpecificationImpl()
   {
     super();
   }
@@ -91,7 +91,7 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
   @Override
   protected EClass eStaticClass()
   {
-    return StextPackage.Literals.STATECHART_DEFINITION;
+    return StextPackage.Literals.STATECHART_SPECIFICATION;
   }
 
   /**
@@ -114,7 +114,7 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
     String oldNamespace = namespace;
     namespace = newNamespace;
     if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.STATECHART_DEFINITION__NAMESPACE, oldNamespace, namespace));
+      eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.STATECHART_SPECIFICATION__NAMESPACE, oldNamespace, namespace));
   }
 
   /**
@@ -126,7 +126,7 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
   {
     if (definitionScopes == null)
     {
-      definitionScopes = new EObjectContainmentEList<Scope>(Scope.class, this, StextPackage.STATECHART_DEFINITION__DEFINITION_SCOPES);
+      definitionScopes = new EObjectContainmentEList<Scope>(Scope.class, this, StextPackage.STATECHART_SPECIFICATION__DEFINITION_SCOPES);
     }
     return definitionScopes;
   }
@@ -141,7 +141,7 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
   {
     switch (featureID)
     {
-      case StextPackage.STATECHART_DEFINITION__DEFINITION_SCOPES:
+      case StextPackage.STATECHART_SPECIFICATION__DEFINITION_SCOPES:
         return ((InternalEList<?>)getDefinitionScopes()).basicRemove(otherEnd, msgs);
     }
     return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -157,9 +157,9 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
   {
     switch (featureID)
     {
-      case StextPackage.STATECHART_DEFINITION__NAMESPACE:
+      case StextPackage.STATECHART_SPECIFICATION__NAMESPACE:
         return getNamespace();
-      case StextPackage.STATECHART_DEFINITION__DEFINITION_SCOPES:
+      case StextPackage.STATECHART_SPECIFICATION__DEFINITION_SCOPES:
         return getDefinitionScopes();
     }
     return super.eGet(featureID, resolve, coreType);
@@ -176,10 +176,10 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
   {
     switch (featureID)
     {
-      case StextPackage.STATECHART_DEFINITION__NAMESPACE:
+      case StextPackage.STATECHART_SPECIFICATION__NAMESPACE:
         setNamespace((String)newValue);
         return;
-      case StextPackage.STATECHART_DEFINITION__DEFINITION_SCOPES:
+      case StextPackage.STATECHART_SPECIFICATION__DEFINITION_SCOPES:
         getDefinitionScopes().clear();
         getDefinitionScopes().addAll((Collection<? extends Scope>)newValue);
         return;
@@ -197,10 +197,10 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
   {
     switch (featureID)
     {
-      case StextPackage.STATECHART_DEFINITION__NAMESPACE:
+      case StextPackage.STATECHART_SPECIFICATION__NAMESPACE:
         setNamespace(NAMESPACE_EDEFAULT);
         return;
-      case StextPackage.STATECHART_DEFINITION__DEFINITION_SCOPES:
+      case StextPackage.STATECHART_SPECIFICATION__DEFINITION_SCOPES:
         getDefinitionScopes().clear();
         return;
     }
@@ -217,9 +217,9 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
   {
     switch (featureID)
     {
-      case StextPackage.STATECHART_DEFINITION__NAMESPACE:
+      case StextPackage.STATECHART_SPECIFICATION__NAMESPACE:
         return NAMESPACE_EDEFAULT == null ? namespace != null : !NAMESPACE_EDEFAULT.equals(namespace);
-      case StextPackage.STATECHART_DEFINITION__DEFINITION_SCOPES:
+      case StextPackage.STATECHART_SPECIFICATION__DEFINITION_SCOPES:
         return definitionScopes != null && !definitionScopes.isEmpty();
     }
     return super.eIsSet(featureID);
@@ -242,4 +242,4 @@ public class StatechartDefinitionImpl extends MinimalEObjectImpl.Container imple
     return result.toString();
   }
 
-} //StatechartDefinitionImpl
+} //StatechartSpecificationImpl

+ 12 - 24
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StextFactoryImpl.java

@@ -74,9 +74,9 @@ public class StextFactoryImpl extends EFactoryImpl implements StextFactory
       case StextPackage.STATECHART_ROOT: return createStatechartRoot();
       case StextPackage.STATE_ROOT: return createStateRoot();
       case StextPackage.TRANSITION_ROOT: return createTransitionRoot();
-      case StextPackage.STATECHART_DEFINITION: return createStatechartDefinition();
-      case StextPackage.STATE_DECLARATION: return createStateDeclaration();
-      case StextPackage.TRANSITION_STATEMENT: return createTransitionStatement();
+      case StextPackage.STATECHART_SPECIFICATION: return createStatechartSpecification();
+      case StextPackage.STATE_SPECIFICATION: return createStateSpecification();
+      case StextPackage.TRANSITION_SPECIFICATION: return createTransitionSpecification();
       case StextPackage.EVENT_DERIVATION: return createEventDerivation();
       case StextPackage.LOCAL_REACTION: return createLocalReaction();
       case StextPackage.TRANSITION_REACTION: return createTransitionReaction();
@@ -111,7 +111,6 @@ public class StextFactoryImpl extends EFactoryImpl implements StextFactory
       case StextPackage.INTERNAL_SCOPE: return createInternalScope();
       case StextPackage.EVENT_DEFINITION: return createEventDefinition();
       case StextPackage.VARIABLE_DEFINITION: return createVariableDefinition();
-      case StextPackage.CLOCK: return createClock();
       case StextPackage.OPERATION: return createOperation();
       case StextPackage.ENTRYPOINT: return createEntrypoint();
       case StextPackage.EXITPOINT: return createExitpoint();
@@ -266,10 +265,10 @@ public class StextFactoryImpl extends EFactoryImpl implements StextFactory
    * <!-- end-user-doc -->
    * @generated
    */
-  public StatechartDefinition createStatechartDefinition()
+  public StatechartSpecification createStatechartSpecification()
   {
-    StatechartDefinitionImpl statechartDefinition = new StatechartDefinitionImpl();
-    return statechartDefinition;
+    StatechartSpecificationImpl statechartSpecification = new StatechartSpecificationImpl();
+    return statechartSpecification;
   }
 
   /**
@@ -277,10 +276,10 @@ public class StextFactoryImpl extends EFactoryImpl implements StextFactory
    * <!-- end-user-doc -->
    * @generated
    */
-  public StateDeclaration createStateDeclaration()
+  public StateSpecification createStateSpecification()
   {
-    StateDeclarationImpl stateDeclaration = new StateDeclarationImpl();
-    return stateDeclaration;
+    StateSpecificationImpl stateSpecification = new StateSpecificationImpl();
+    return stateSpecification;
   }
 
   /**
@@ -288,10 +287,10 @@ public class StextFactoryImpl extends EFactoryImpl implements StextFactory
    * <!-- end-user-doc -->
    * @generated
    */
-  public TransitionStatement createTransitionStatement()
+  public TransitionSpecification createTransitionSpecification()
   {
-    TransitionStatementImpl transitionStatement = new TransitionStatementImpl();
-    return transitionStatement;
+    TransitionSpecificationImpl transitionSpecification = new TransitionSpecificationImpl();
+    return transitionSpecification;
   }
 
   /**
@@ -668,17 +667,6 @@ public class StextFactoryImpl extends EFactoryImpl implements StextFactory
     return variableDefinition;
   }
 
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public Clock createClock()
-  {
-    ClockImpl clock = new ClockImpl();
-    return clock;
-  }
-
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->

+ 45 - 57
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StextPackageImpl.java

@@ -26,7 +26,6 @@ import org.yakindu.sct.model.stext.stext.BitwiseOrExpression;
 import org.yakindu.sct.model.stext.stext.BitwiseXorExpression;
 import org.yakindu.sct.model.stext.stext.BoolLiteral;
 import org.yakindu.sct.model.stext.stext.BuiltinEventSpec;
-import org.yakindu.sct.model.stext.stext.Clock;
 import org.yakindu.sct.model.stext.stext.ConditionalExpression;
 import org.yakindu.sct.model.stext.stext.DefRoot;
 import org.yakindu.sct.model.stext.stext.DefaultEvent;
@@ -75,10 +74,10 @@ import org.yakindu.sct.model.stext.stext.Root;
 import org.yakindu.sct.model.stext.stext.ShiftExpression;
 import org.yakindu.sct.model.stext.stext.ShiftOperator;
 import org.yakindu.sct.model.stext.stext.SimpleScope;
-import org.yakindu.sct.model.stext.stext.StateDeclaration;
 import org.yakindu.sct.model.stext.stext.StateRoot;
-import org.yakindu.sct.model.stext.stext.StatechartDefinition;
+import org.yakindu.sct.model.stext.stext.StateSpecification;
 import org.yakindu.sct.model.stext.stext.StatechartRoot;
+import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.StextFactory;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 import org.yakindu.sct.model.stext.stext.TimeEventSpec;
@@ -86,7 +85,7 @@ import org.yakindu.sct.model.stext.stext.TimeEventType;
 import org.yakindu.sct.model.stext.stext.TimeUnit;
 import org.yakindu.sct.model.stext.stext.TransitionReaction;
 import org.yakindu.sct.model.stext.stext.TransitionRoot;
-import org.yakindu.sct.model.stext.stext.TransitionStatement;
+import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 import org.yakindu.sct.model.stext.stext.Type;
 import org.yakindu.sct.model.stext.stext.UnaryOperator;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
@@ -139,21 +138,21 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
    * <!-- end-user-doc -->
    * @generated
    */
-  private EClass statechartDefinitionEClass = null;
+  private EClass statechartSpecificationEClass = null;
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @generated
    */
-  private EClass stateDeclarationEClass = null;
+  private EClass stateSpecificationEClass = null;
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
    * @generated
    */
-  private EClass transitionStatementEClass = null;
+  private EClass transitionSpecificationEClass = null;
 
   /**
    * <!-- begin-user-doc -->
@@ -393,13 +392,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
    */
   private EClass variableDefinitionEClass = null;
 
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass clockEClass = null;
-
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -764,9 +756,19 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
    * <!-- end-user-doc -->
    * @generated
    */
-  public EClass getStatechartDefinition()
+  public EClass getStatechartSpecification()
+  {
+    return statechartSpecificationEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getStatechartSpecification_Namespace()
   {
-    return statechartDefinitionEClass;
+    return (EAttribute)statechartSpecificationEClass.getEStructuralFeatures().get(0);
   }
 
   /**
@@ -774,9 +776,9 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
    * <!-- end-user-doc -->
    * @generated
    */
-  public EAttribute getStatechartDefinition_Namespace()
+  public EReference getStatechartSpecification_DefinitionScopes()
   {
-    return (EAttribute)statechartDefinitionEClass.getEStructuralFeatures().get(0);
+    return (EReference)statechartSpecificationEClass.getEStructuralFeatures().get(1);
   }
 
   /**
@@ -784,9 +786,9 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
    * <!-- end-user-doc -->
    * @generated
    */
-  public EReference getStatechartDefinition_DefinitionScopes()
+  public EClass getStateSpecification()
   {
-    return (EReference)statechartDefinitionEClass.getEStructuralFeatures().get(1);
+    return stateSpecificationEClass;
   }
 
   /**
@@ -794,9 +796,9 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
    * <!-- end-user-doc -->
    * @generated
    */
-  public EClass getStateDeclaration()
+  public EReference getStateSpecification_Scope()
   {
-    return stateDeclarationEClass;
+    return (EReference)stateSpecificationEClass.getEStructuralFeatures().get(0);
   }
 
   /**
@@ -804,9 +806,9 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
    * <!-- end-user-doc -->
    * @generated
    */
-  public EReference getStateDeclaration_Scope()
+  public EClass getTransitionSpecification()
   {
-    return (EReference)stateDeclarationEClass.getEStructuralFeatures().get(0);
+    return transitionSpecificationEClass;
   }
 
   /**
@@ -814,9 +816,9 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
    * <!-- end-user-doc -->
    * @generated
    */
-  public EClass getTransitionStatement()
+  public EReference getTransitionSpecification_Reaction()
   {
-    return transitionStatementEClass;
+    return (EReference)transitionSpecificationEClass.getEStructuralFeatures().get(0);
   }
 
   /**
@@ -1489,16 +1491,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     return (EReference)variableDefinitionEClass.getEStructuralFeatures().get(3);
   }
 
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public EClass getClock()
-  {
-    return clockEClass;
-  }
-
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -2193,14 +2185,15 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     transitionRootEClass = createEClass(TRANSITION_ROOT);
     createEReference(transitionRootEClass, TRANSITION_ROOT__DEF);
 
-    statechartDefinitionEClass = createEClass(STATECHART_DEFINITION);
-    createEAttribute(statechartDefinitionEClass, STATECHART_DEFINITION__NAMESPACE);
-    createEReference(statechartDefinitionEClass, STATECHART_DEFINITION__DEFINITION_SCOPES);
+    statechartSpecificationEClass = createEClass(STATECHART_SPECIFICATION);
+    createEAttribute(statechartSpecificationEClass, STATECHART_SPECIFICATION__NAMESPACE);
+    createEReference(statechartSpecificationEClass, STATECHART_SPECIFICATION__DEFINITION_SCOPES);
 
-    stateDeclarationEClass = createEClass(STATE_DECLARATION);
-    createEReference(stateDeclarationEClass, STATE_DECLARATION__SCOPE);
+    stateSpecificationEClass = createEClass(STATE_SPECIFICATION);
+    createEReference(stateSpecificationEClass, STATE_SPECIFICATION__SCOPE);
 
-    transitionStatementEClass = createEClass(TRANSITION_STATEMENT);
+    transitionSpecificationEClass = createEClass(TRANSITION_SPECIFICATION);
+    createEReference(transitionSpecificationEClass, TRANSITION_SPECIFICATION__REACTION);
 
     eventDerivationEClass = createEClass(EVENT_DERIVATION);
     createEReference(eventDerivationEClass, EVENT_DERIVATION__CONDITION);
@@ -2303,8 +2296,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     createEAttribute(variableDefinitionEClass, VARIABLE_DEFINITION__TYPE);
     createEReference(variableDefinitionEClass, VARIABLE_DEFINITION__INITIAL_VALUE);
 
-    clockEClass = createEClass(CLOCK);
-
     operationEClass = createEClass(OPERATION);
     createEAttribute(operationEClass, OPERATION__PARAM_TYPES);
     createEAttribute(operationEClass, OPERATION__TYPE);
@@ -2429,7 +2420,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     transitionRootEClass.getESuperTypes().add(this.getDefRoot());
     localReactionEClass.getESuperTypes().add(theSGraphPackage.getDeclaration());
     localReactionEClass.getESuperTypes().add(theSGraphPackage.getReaction());
-    transitionReactionEClass.getESuperTypes().add(this.getTransitionStatement());
     transitionReactionEClass.getESuperTypes().add(theSGraphPackage.getReaction());
     reactionPriorityEClass.getESuperTypes().add(this.getReactionProperty());
     entryPointSpecEClass.getESuperTypes().add(this.getReactionProperty());
@@ -2458,7 +2448,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     internalScopeEClass.getESuperTypes().add(theSGraphPackage.getScope());
     eventDefinitionEClass.getESuperTypes().add(theSGraphPackage.getEvent());
     variableDefinitionEClass.getESuperTypes().add(theSGraphPackage.getVariable());
-    clockEClass.getESuperTypes().add(theSGraphPackage.getDeclaration());
     operationEClass.getESuperTypes().add(theSGraphPackage.getDeclaration());
     entrypointEClass.getESuperTypes().add(theSGraphPackage.getDeclaration());
     exitpointEClass.getESuperTypes().add(theSGraphPackage.getDeclaration());
@@ -2486,22 +2475,23 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     initEClass(defRootEClass, DefRoot.class, "DefRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
     initEClass(statechartRootEClass, StatechartRoot.class, "StatechartRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getStatechartRoot_Def(), this.getStatechartDefinition(), null, "def", null, 0, 1, StatechartRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getStatechartRoot_Def(), this.getStatechartSpecification(), null, "def", null, 0, 1, StatechartRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
     initEClass(stateRootEClass, StateRoot.class, "StateRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getStateRoot_Def(), this.getStateDeclaration(), null, "def", null, 0, 1, StateRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getStateRoot_Def(), this.getStateSpecification(), null, "def", null, 0, 1, StateRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
     initEClass(transitionRootEClass, TransitionRoot.class, "TransitionRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getTransitionRoot_Def(), this.getTransitionStatement(), null, "def", null, 0, 1, TransitionRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getTransitionRoot_Def(), this.getTransitionSpecification(), null, "def", null, 0, 1, TransitionRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-    initEClass(statechartDefinitionEClass, StatechartDefinition.class, "StatechartDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEAttribute(getStatechartDefinition_Namespace(), ecorePackage.getEString(), "namespace", null, 0, 1, StatechartDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getStatechartDefinition_DefinitionScopes(), theSGraphPackage.getScope(), null, "definitionScopes", null, 0, -1, StatechartDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEClass(statechartSpecificationEClass, StatechartSpecification.class, "StatechartSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getStatechartSpecification_Namespace(), ecorePackage.getEString(), "namespace", null, 0, 1, StatechartSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getStatechartSpecification_DefinitionScopes(), theSGraphPackage.getScope(), null, "definitionScopes", null, 0, -1, StatechartSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-    initEClass(stateDeclarationEClass, StateDeclaration.class, "StateDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getStateDeclaration_Scope(), theSGraphPackage.getScope(), null, "scope", null, 0, 1, StateDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEClass(stateSpecificationEClass, StateSpecification.class, "StateSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getStateSpecification_Scope(), theSGraphPackage.getScope(), null, "scope", null, 0, 1, StateSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-    initEClass(transitionStatementEClass, TransitionStatement.class, "TransitionStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEClass(transitionSpecificationEClass, TransitionSpecification.class, "TransitionSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getTransitionSpecification_Reaction(), this.getTransitionReaction(), null, "reaction", null, 0, 1, TransitionSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
     initEClass(eventDerivationEClass, EventDerivation.class, "EventDerivation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
     initEReference(getEventDerivation_Condition(), this.getExpression(), null, "condition", null, 0, 1, EventDerivation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2604,8 +2594,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     initEAttribute(getVariableDefinition_Type(), this.getType(), "type", null, 0, 1, VariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
     initEReference(getVariableDefinition_InitialValue(), this.getExpression(), null, "initialValue", null, 0, 1, VariableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-    initEClass(clockEClass, Clock.class, "Clock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
     initEClass(operationEClass, Operation.class, "Operation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
     initEAttribute(getOperation_ParamTypes(), this.getType(), "paramTypes", null, 0, -1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
     initEAttribute(getOperation_Type(), this.getType(), "type", null, 0, 1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+ 2 - 187
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TransitionReactionImpl.java

@@ -14,10 +14,7 @@ import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
-import org.yakindu.sct.model.sgraph.Effect;
-import org.yakindu.sct.model.sgraph.Reaction;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Trigger;
+import org.yakindu.sct.model.sgraph.impl.ReactionImpl;
 
 import org.yakindu.sct.model.stext.stext.ReactionProperties;
 import org.yakindu.sct.model.stext.stext.StextPackage;
@@ -30,36 +27,14 @@ import org.yakindu.sct.model.stext.stext.TransitionReaction;
  * <p>
  * The following features are implemented:
  * <ul>
- *   <li>{@link org.yakindu.sct.model.stext.stext.impl.TransitionReactionImpl#getTrigger <em>Trigger</em>}</li>
- *   <li>{@link org.yakindu.sct.model.stext.stext.impl.TransitionReactionImpl#getEffect <em>Effect</em>}</li>
  *   <li>{@link org.yakindu.sct.model.stext.stext.impl.TransitionReactionImpl#getProperties <em>Properties</em>}</li>
  * </ul>
  * </p>
  *
  * @generated
  */
-public class TransitionReactionImpl extends TransitionStatementImpl implements TransitionReaction
+public class TransitionReactionImpl extends ReactionImpl implements TransitionReaction
 {
-  /**
-   * The cached value of the '{@link #getTrigger() <em>Trigger</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getTrigger()
-   * @generated
-   * @ordered
-   */
-  protected Trigger trigger;
-
-  /**
-   * The cached value of the '{@link #getEffect() <em>Effect</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getEffect()
-   * @generated
-   * @ordered
-   */
-  protected Effect effect;
-
   /**
    * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference.
    * <!-- begin-user-doc -->
@@ -91,102 +66,6 @@ public class TransitionReactionImpl extends TransitionStatementImpl implements T
     return StextPackage.Literals.TRANSITION_REACTION;
   }
 
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public Trigger getTrigger()
-  {
-    return trigger;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetTrigger(Trigger newTrigger, NotificationChain msgs)
-  {
-    Trigger oldTrigger = trigger;
-    trigger = newTrigger;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StextPackage.TRANSITION_REACTION__TRIGGER, oldTrigger, newTrigger);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public void setTrigger(Trigger newTrigger)
-  {
-    if (newTrigger != trigger)
-    {
-      NotificationChain msgs = null;
-      if (trigger != null)
-        msgs = ((InternalEObject)trigger).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StextPackage.TRANSITION_REACTION__TRIGGER, null, msgs);
-      if (newTrigger != null)
-        msgs = ((InternalEObject)newTrigger).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StextPackage.TRANSITION_REACTION__TRIGGER, null, msgs);
-      msgs = basicSetTrigger(newTrigger, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.TRANSITION_REACTION__TRIGGER, newTrigger, newTrigger));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public Effect getEffect()
-  {
-    return effect;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetEffect(Effect newEffect, NotificationChain msgs)
-  {
-    Effect oldEffect = effect;
-    effect = newEffect;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StextPackage.TRANSITION_REACTION__EFFECT, oldEffect, newEffect);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public void setEffect(Effect newEffect)
-  {
-    if (newEffect != effect)
-    {
-      NotificationChain msgs = null;
-      if (effect != null)
-        msgs = ((InternalEObject)effect).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StextPackage.TRANSITION_REACTION__EFFECT, null, msgs);
-      if (newEffect != null)
-        msgs = ((InternalEObject)newEffect).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StextPackage.TRANSITION_REACTION__EFFECT, null, msgs);
-      msgs = basicSetEffect(newEffect, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.TRANSITION_REACTION__EFFECT, newEffect, newEffect));
-  }
-
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -245,10 +124,6 @@ public class TransitionReactionImpl extends TransitionStatementImpl implements T
   {
     switch (featureID)
     {
-      case StextPackage.TRANSITION_REACTION__TRIGGER:
-        return basicSetTrigger(null, msgs);
-      case StextPackage.TRANSITION_REACTION__EFFECT:
-        return basicSetEffect(null, msgs);
       case StextPackage.TRANSITION_REACTION__PROPERTIES:
         return basicSetProperties(null, msgs);
     }
@@ -265,10 +140,6 @@ public class TransitionReactionImpl extends TransitionStatementImpl implements T
   {
     switch (featureID)
     {
-      case StextPackage.TRANSITION_REACTION__TRIGGER:
-        return getTrigger();
-      case StextPackage.TRANSITION_REACTION__EFFECT:
-        return getEffect();
       case StextPackage.TRANSITION_REACTION__PROPERTIES:
         return getProperties();
     }
@@ -285,12 +156,6 @@ public class TransitionReactionImpl extends TransitionStatementImpl implements T
   {
     switch (featureID)
     {
-      case StextPackage.TRANSITION_REACTION__TRIGGER:
-        setTrigger((Trigger)newValue);
-        return;
-      case StextPackage.TRANSITION_REACTION__EFFECT:
-        setEffect((Effect)newValue);
-        return;
       case StextPackage.TRANSITION_REACTION__PROPERTIES:
         setProperties((ReactionProperties)newValue);
         return;
@@ -308,12 +173,6 @@ public class TransitionReactionImpl extends TransitionStatementImpl implements T
   {
     switch (featureID)
     {
-      case StextPackage.TRANSITION_REACTION__TRIGGER:
-        setTrigger((Trigger)null);
-        return;
-      case StextPackage.TRANSITION_REACTION__EFFECT:
-        setEffect((Effect)null);
-        return;
       case StextPackage.TRANSITION_REACTION__PROPERTIES:
         setProperties((ReactionProperties)null);
         return;
@@ -331,54 +190,10 @@ public class TransitionReactionImpl extends TransitionStatementImpl implements T
   {
     switch (featureID)
     {
-      case StextPackage.TRANSITION_REACTION__TRIGGER:
-        return trigger != null;
-      case StextPackage.TRANSITION_REACTION__EFFECT:
-        return effect != null;
       case StextPackage.TRANSITION_REACTION__PROPERTIES:
         return properties != null;
     }
     return super.eIsSet(featureID);
   }
 
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-  {
-    if (baseClass == Reaction.class)
-    {
-      switch (derivedFeatureID)
-      {
-        case StextPackage.TRANSITION_REACTION__TRIGGER: return SGraphPackage.REACTION__TRIGGER;
-        case StextPackage.TRANSITION_REACTION__EFFECT: return SGraphPackage.REACTION__EFFECT;
-        default: return -1;
-      }
-    }
-    return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-  {
-    if (baseClass == Reaction.class)
-    {
-      switch (baseFeatureID)
-      {
-        case SGraphPackage.REACTION__TRIGGER: return StextPackage.TRANSITION_REACTION__TRIGGER;
-        case SGraphPackage.REACTION__EFFECT: return StextPackage.TRANSITION_REACTION__EFFECT;
-        default: return -1;
-      }
-    }
-    return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-  }
-
 } //TransitionReactionImpl

+ 8 - 8
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TransitionRootImpl.java

@@ -16,7 +16,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
 import org.yakindu.sct.model.stext.stext.StextPackage;
 import org.yakindu.sct.model.stext.stext.TransitionRoot;
-import org.yakindu.sct.model.stext.stext.TransitionStatement;
+import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 
 /**
  * <!-- begin-user-doc -->
@@ -41,7 +41,7 @@ public class TransitionRootImpl extends DefRootImpl implements TransitionRoot
    * @generated
    * @ordered
    */
-  protected TransitionStatement def;
+  protected TransitionSpecification def;
 
   /**
    * <!-- begin-user-doc -->
@@ -69,7 +69,7 @@ public class TransitionRootImpl extends DefRootImpl implements TransitionRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public TransitionStatement getDef()
+  public TransitionSpecification getDef()
   {
     return def;
   }
@@ -79,9 +79,9 @@ public class TransitionRootImpl extends DefRootImpl implements TransitionRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public NotificationChain basicSetDef(TransitionStatement newDef, NotificationChain msgs)
+  public NotificationChain basicSetDef(TransitionSpecification newDef, NotificationChain msgs)
   {
-    TransitionStatement oldDef = def;
+    TransitionSpecification oldDef = def;
     def = newDef;
     if (eNotificationRequired())
     {
@@ -96,7 +96,7 @@ public class TransitionRootImpl extends DefRootImpl implements TransitionRoot
    * <!-- end-user-doc -->
    * @generated
    */
-  public void setDef(TransitionStatement newDef)
+  public void setDef(TransitionSpecification newDef)
   {
     if (newDef != def)
     {
@@ -155,7 +155,7 @@ public class TransitionRootImpl extends DefRootImpl implements TransitionRoot
     switch (featureID)
     {
       case StextPackage.TRANSITION_ROOT__DEF:
-        setDef((TransitionStatement)newValue);
+        setDef((TransitionSpecification)newValue);
         return;
     }
     super.eSet(featureID, newValue);
@@ -172,7 +172,7 @@ public class TransitionRootImpl extends DefRootImpl implements TransitionRoot
     switch (featureID)
     {
       case StextPackage.TRANSITION_ROOT__DEF:
-        setDef((TransitionStatement)null);
+        setDef((TransitionSpecification)null);
         return;
     }
     super.eUnset(featureID);

+ 198 - 0
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TransitionSpecificationImpl.java

@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.yakindu.sct.model.stext.stext.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.yakindu.sct.model.stext.stext.StextPackage;
+import org.yakindu.sct.model.stext.stext.TransitionReaction;
+import org.yakindu.sct.model.stext.stext.TransitionSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transition Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.impl.TransitionSpecificationImpl#getReaction <em>Reaction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransitionSpecificationImpl extends MinimalEObjectImpl.Container implements TransitionSpecification
+{
+  /**
+   * The cached value of the '{@link #getReaction() <em>Reaction</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getReaction()
+   * @generated
+   * @ordered
+   */
+  protected TransitionReaction reaction;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected TransitionSpecificationImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return StextPackage.Literals.TRANSITION_SPECIFICATION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public TransitionReaction getReaction()
+  {
+    return reaction;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetReaction(TransitionReaction newReaction, NotificationChain msgs)
+  {
+    TransitionReaction oldReaction = reaction;
+    reaction = newReaction;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StextPackage.TRANSITION_SPECIFICATION__REACTION, oldReaction, newReaction);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setReaction(TransitionReaction newReaction)
+  {
+    if (newReaction != reaction)
+    {
+      NotificationChain msgs = null;
+      if (reaction != null)
+        msgs = ((InternalEObject)reaction).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StextPackage.TRANSITION_SPECIFICATION__REACTION, null, msgs);
+      if (newReaction != null)
+        msgs = ((InternalEObject)newReaction).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StextPackage.TRANSITION_SPECIFICATION__REACTION, null, msgs);
+      msgs = basicSetReaction(newReaction, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.TRANSITION_SPECIFICATION__REACTION, newReaction, newReaction));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case StextPackage.TRANSITION_SPECIFICATION__REACTION:
+        return basicSetReaction(null, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case StextPackage.TRANSITION_SPECIFICATION__REACTION:
+        return getReaction();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case StextPackage.TRANSITION_SPECIFICATION__REACTION:
+        setReaction((TransitionReaction)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case StextPackage.TRANSITION_SPECIFICATION__REACTION:
+        setReaction((TransitionReaction)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case StextPackage.TRANSITION_SPECIFICATION__REACTION:
+        return reaction != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //TransitionSpecificationImpl

+ 0 - 48
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TransitionStatementImpl.java

@@ -1,48 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
-
- */
-package org.yakindu.sct.model.stext.stext.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.yakindu.sct.model.stext.stext.StextPackage;
-import org.yakindu.sct.model.stext.stext.TransitionStatement;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Transition Statement</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public class TransitionStatementImpl extends MinimalEObjectImpl.Container implements TransitionStatement
-{
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected TransitionStatementImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return StextPackage.Literals.TRANSITION_STATEMENT;
-  }
-
-} //TransitionStatementImpl

+ 15 - 35
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/util/StextAdapterFactory.java

@@ -114,19 +114,19 @@ public class StextAdapterFactory extends AdapterFactoryImpl
         return createTransitionRootAdapter();
       }
       @Override
-      public Adapter caseStatechartDefinition(StatechartDefinition object)
+      public Adapter caseStatechartSpecification(StatechartSpecification object)
       {
-        return createStatechartDefinitionAdapter();
+        return createStatechartSpecificationAdapter();
       }
       @Override
-      public Adapter caseStateDeclaration(StateDeclaration object)
+      public Adapter caseStateSpecification(StateSpecification object)
       {
-        return createStateDeclarationAdapter();
+        return createStateSpecificationAdapter();
       }
       @Override
-      public Adapter caseTransitionStatement(TransitionStatement object)
+      public Adapter caseTransitionSpecification(TransitionSpecification object)
       {
-        return createTransitionStatementAdapter();
+        return createTransitionSpecificationAdapter();
       }
       @Override
       public Adapter caseEventDerivation(EventDerivation object)
@@ -299,11 +299,6 @@ public class StextAdapterFactory extends AdapterFactoryImpl
         return createVariableDefinitionAdapter();
       }
       @Override
-      public Adapter caseClock(Clock object)
-      {
-        return createClockAdapter();
-      }
-      @Override
       public Adapter caseOperation(Operation object)
       {
         return createOperationAdapter();
@@ -541,46 +536,46 @@ public class StextAdapterFactory extends AdapterFactoryImpl
   }
 
   /**
-   * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.StatechartDefinition <em>Statechart Definition</em>}'.
+   * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.StatechartSpecification <em>Statechart Specification</em>}'.
    * <!-- begin-user-doc -->
    * This default implementation returns null so that we can easily ignore cases;
    * it's useful to ignore a case when inheritance will catch all the cases anyway.
    * <!-- end-user-doc -->
    * @return the new adapter.
-   * @see org.yakindu.sct.model.stext.stext.StatechartDefinition
+   * @see org.yakindu.sct.model.stext.stext.StatechartSpecification
    * @generated
    */
-  public Adapter createStatechartDefinitionAdapter()
+  public Adapter createStatechartSpecificationAdapter()
   {
     return null;
   }
 
   /**
-   * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.StateDeclaration <em>State Declaration</em>}'.
+   * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.StateSpecification <em>State Specification</em>}'.
    * <!-- begin-user-doc -->
    * This default implementation returns null so that we can easily ignore cases;
    * it's useful to ignore a case when inheritance will catch all the cases anyway.
    * <!-- end-user-doc -->
    * @return the new adapter.
-   * @see org.yakindu.sct.model.stext.stext.StateDeclaration
+   * @see org.yakindu.sct.model.stext.stext.StateSpecification
    * @generated
    */
-  public Adapter createStateDeclarationAdapter()
+  public Adapter createStateSpecificationAdapter()
   {
     return null;
   }
 
   /**
-   * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.TransitionStatement <em>Transition Statement</em>}'.
+   * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.TransitionSpecification <em>Transition Specification</em>}'.
    * <!-- begin-user-doc -->
    * This default implementation returns null so that we can easily ignore cases;
    * it's useful to ignore a case when inheritance will catch all the cases anyway.
    * <!-- end-user-doc -->
    * @return the new adapter.
-   * @see org.yakindu.sct.model.stext.stext.TransitionStatement
+   * @see org.yakindu.sct.model.stext.stext.TransitionSpecification
    * @generated
    */
-  public Adapter createTransitionStatementAdapter()
+  public Adapter createTransitionSpecificationAdapter()
   {
     return null;
   }
@@ -1095,21 +1090,6 @@ public class StextAdapterFactory extends AdapterFactoryImpl
     return null;
   }
 
-  /**
-   * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.Clock <em>Clock</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.yakindu.sct.model.stext.stext.Clock
-   * @generated
-   */
-  public Adapter createClockAdapter()
-  {
-    return null;
-  }
-
   /**
    * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.Operation <em>Operation</em>}'.
    * <!-- begin-user-doc -->

+ 18 - 44
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/util/StextSwitch.java

@@ -124,24 +124,24 @@ public class StextSwitch<T> extends Switch<T>
         if (result == null) result = defaultCase(theEObject);
         return result;
       }
-      case StextPackage.STATECHART_DEFINITION:
+      case StextPackage.STATECHART_SPECIFICATION:
       {
-        StatechartDefinition statechartDefinition = (StatechartDefinition)theEObject;
-        T result = caseStatechartDefinition(statechartDefinition);
+        StatechartSpecification statechartSpecification = (StatechartSpecification)theEObject;
+        T result = caseStatechartSpecification(statechartSpecification);
         if (result == null) result = defaultCase(theEObject);
         return result;
       }
-      case StextPackage.STATE_DECLARATION:
+      case StextPackage.STATE_SPECIFICATION:
       {
-        StateDeclaration stateDeclaration = (StateDeclaration)theEObject;
-        T result = caseStateDeclaration(stateDeclaration);
+        StateSpecification stateSpecification = (StateSpecification)theEObject;
+        T result = caseStateSpecification(stateSpecification);
         if (result == null) result = defaultCase(theEObject);
         return result;
       }
-      case StextPackage.TRANSITION_STATEMENT:
+      case StextPackage.TRANSITION_SPECIFICATION:
       {
-        TransitionStatement transitionStatement = (TransitionStatement)theEObject;
-        T result = caseTransitionStatement(transitionStatement);
+        TransitionSpecification transitionSpecification = (TransitionSpecification)theEObject;
+        T result = caseTransitionSpecification(transitionSpecification);
         if (result == null) result = defaultCase(theEObject);
         return result;
       }
@@ -166,7 +166,6 @@ public class StextSwitch<T> extends Switch<T>
       {
         TransitionReaction transitionReaction = (TransitionReaction)theEObject;
         T result = caseTransitionReaction(transitionReaction);
-        if (result == null) result = caseTransitionStatement(transitionReaction);
         if (result == null) result = caseReaction(transitionReaction);
         if (result == null) result = defaultCase(theEObject);
         return result;
@@ -428,15 +427,6 @@ public class StextSwitch<T> extends Switch<T>
         if (result == null) result = defaultCase(theEObject);
         return result;
       }
-      case StextPackage.CLOCK:
-      {
-        Clock clock = (Clock)theEObject;
-        T result = caseClock(clock);
-        if (result == null) result = caseDeclaration(clock);
-        if (result == null) result = caseNamedElement(clock);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
       case StextPackage.OPERATION:
       {
         Operation operation = (Operation)theEObject;
@@ -691,49 +681,49 @@ public class StextSwitch<T> extends Switch<T>
   }
 
   /**
-   * Returns the result of interpreting the object as an instance of '<em>Statechart Definition</em>'.
+   * Returns the result of interpreting the object as an instance of '<em>Statechart Specification</em>'.
    * <!-- begin-user-doc -->
    * This implementation returns null;
    * returning a non-null result will terminate the switch.
    * <!-- end-user-doc -->
    * @param object the target of the switch.
-   * @return the result of interpreting the object as an instance of '<em>Statechart Definition</em>'.
+   * @return the result of interpreting the object as an instance of '<em>Statechart Specification</em>'.
    * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
    * @generated
    */
-  public T caseStatechartDefinition(StatechartDefinition object)
+  public T caseStatechartSpecification(StatechartSpecification object)
   {
     return null;
   }
 
   /**
-   * Returns the result of interpreting the object as an instance of '<em>State Declaration</em>'.
+   * Returns the result of interpreting the object as an instance of '<em>State Specification</em>'.
    * <!-- begin-user-doc -->
    * This implementation returns null;
    * returning a non-null result will terminate the switch.
    * <!-- end-user-doc -->
    * @param object the target of the switch.
-   * @return the result of interpreting the object as an instance of '<em>State Declaration</em>'.
+   * @return the result of interpreting the object as an instance of '<em>State Specification</em>'.
    * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
    * @generated
    */
-  public T caseStateDeclaration(StateDeclaration object)
+  public T caseStateSpecification(StateSpecification object)
   {
     return null;
   }
 
   /**
-   * Returns the result of interpreting the object as an instance of '<em>Transition Statement</em>'.
+   * Returns the result of interpreting the object as an instance of '<em>Transition Specification</em>'.
    * <!-- begin-user-doc -->
    * This implementation returns null;
    * returning a non-null result will terminate the switch.
    * <!-- end-user-doc -->
    * @param object the target of the switch.
-   * @return the result of interpreting the object as an instance of '<em>Transition Statement</em>'.
+   * @return the result of interpreting the object as an instance of '<em>Transition Specification</em>'.
    * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
    * @generated
    */
-  public T caseTransitionStatement(TransitionStatement object)
+  public T caseTransitionSpecification(TransitionSpecification object)
   {
     return null;
   }
@@ -1282,22 +1272,6 @@ public class StextSwitch<T> extends Switch<T>
     return null;
   }
 
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Clock</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>Clock</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseClock(Clock object)
-  {
-    return null;
-  }
-
   /**
    * Returns the result of interpreting the object as an instance of '<em>Operation</em>'.
    * <!-- begin-user-doc -->

+ 74 - 95
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/SText.xtext

@@ -1,4 +1,4 @@
-grammar org.yakindu.sct.model.stext.SText  with org.eclipse.xtext.common.Terminals
+grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals
 
 generate stext "http://www.yakindu.org/sct/statechart/SText"
 import "platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore" as sct
@@ -14,53 +14,53 @@ DefRoot:
 	StatechartRoot | StateRoot | TransitionRoot;
 
 StatechartRoot:
-	'@@statechart@@' def=StatechartDefinition;
+	'@@statechart@@' def=StatechartSpecification;
 
 StateRoot:
-	'@@state@@' def=StateDeclaration;
+	'@@state@@' def=StateSpecification;
 
 TransitionRoot:
-	'@@transition@@' def=TransitionStatement;
+	'@@transition@@' def=TransitionSpecification;
 
 	/* ---- start rules ----
 Define the starting points used by the statechart integration. These rules hook in the concrete rules of the specific grammar.
 */
-StatechartDefinition:
-	{StatechartDefinition}
-	('namespace' namespace = FQN)?
+StatechartSpecification:
+	{StatechartSpecification}
+	('namespace' namespace=FQN)?
 	(definitionScopes+=StatechartScope)*;
 
-StateDeclaration:
-	scope=SimpleScope;
+StateSpecification:
+	scope=StateScope;
 
-TransitionStatement:
-//	Reaction;
-	TransitionReaction;
+TransitionSpecification:
+	reaction=TransitionReaction;
 
 	/* ---- scope rules ----
 Defines different kinds of scopes that contain element definitions. Scopes are used for element definitions in statechart, regions, and state 
 */
 Scope returns sct::Scope:
-	(SimpleScope | StatechartScope);
+	(StateScope | StatechartScope);
 
 	// a SimpleScope is used for states and regions
-SimpleScope returns sct::Scope:
-	{SimpleScope} (declarations+=Declaration)*;
+StateScope returns sct::Scope:
+	{SimpleScope} (declarations+=(LocalReaction | Entrypoint | Exitpoint))*;
 
 	// defines the poosible scopes for statecharts
 StatechartScope returns sct::Scope:
 	InterfaceScope | InternalScope;
 
 InterfaceScope returns sct::Scope:
-	{InterfaceScope} 'interface' (name=ID)? ':' (declarations+=Declaration)*;
+	{InterfaceScope} 'interface' (name=ID)? ':' (declarations+=(EventDefinition | VariableDefinition | Entrypoint |
+	Exitpoint))*;
 
 InternalScope returns sct::Scope:
-	{InternalScope} 'internal' ':' (declarations+=Declaration)*;
+	{InternalScope} 'internal' ':' (declarations+=(EventDefinition | VariableDefinition | Operation | LocalReaction))*;
 
 	/* ---- declarations ----
 a definition is a top level element of a definition scope. */
 Declaration returns sct::Declaration:
-	EventDefinition | VariableDefinition | Clock | Operation | LocalReaction | Entrypoint | Exitpoint;
+	EventDefinition | VariableDefinition | Operation | LocalReaction | Entrypoint | Exitpoint;
 
 	// DataElement: EventDefinition | VariableDefinition;
 
@@ -79,11 +79,7 @@ VariableDefinition returns sct::Variable:
 	{VariableDefinition} 'var' ((readonly?='readonly')? & (external?='external')?) name=ID ':' type=Type ('='
 	initialValue=Expression)?;
 
-/* ---- clock definition ---- */
-Clock returns sct::Declaration:
-	{Clock}'clock' name=ID;
-
-/* ---- clock definition ---- */
+/* ---- operation definition ---- */
 Operation returns sct::Declaration:
 	{Operation} 'operation' name=ID '(' (paramTypes+=Type (',' paramTypes+=Type)*)? ')' (':' type=Type)?;
 
@@ -97,7 +93,7 @@ Exitpoint returns sct::Declaration:
 
 /* ---- Datatype rules ---- */
 FQN:
-	ID ('.'ID)*;
+	ID ('.' ID)*;
 
 	/* ---- reaction rules ----
 Define the structure of reactions that are central for describing the statecharts behavior. 
@@ -111,11 +107,9 @@ LocalReaction:
 TransitionReaction:
 	{TransitionReaction} (trigger=ReactionTrigger)? ('/' effect=ReactionEffect)? ('#' properties=ReactionProperties)?;
 
-
 ReactionTrigger returns sct::Trigger:
-	{ReactionTrigger} (
-		(triggers+=EventSpec ("," triggers+=EventSpec)* (=>'[' guardExpression=Expression ']')?)
-		| ('[' guardExpression=Expression ']'));
+	{ReactionTrigger} ((triggers+=EventSpec ("," triggers+=EventSpec)* (=> '[' guardExpression=Expression ']')?)
+	| ('[' guardExpression=Expression ']'));
 
 ReactionEffect returns sct::Effect:
 	{ReactionEffect} (actions+=Statement ';')+;
@@ -142,12 +136,13 @@ RegularEventSpec:
 	event=[sct::Event|FQN];
 
 	// TODO: redefine after trigger - we need to use it with clocks
-TimeEventSpec: 
+TimeEventSpec:
 	type=TimeEventType value=INT (unit=TimeUnit)?;
 
-enum TimeEventType: after | every;
+enum TimeEventType:
+	after | every;
 
-	// TODO: add dereived events like in(state), entered(state)	
+	//TODO: Group OnCycleEvent and AlwaysEvent, maybe replace it by a DoEvent
 BuiltinEventSpec:
 	EntryEvent | ExitEvent | OnCycleEvent | AlwaysEvent | DefaultEvent;
 
@@ -173,28 +168,24 @@ Statement returns sct::Statement:
 
 Assignment:
 	varRef=[sct::Variable|FQN] operator=AssignmentOperator expression=Expression;
-	
-	
-enum AssignmentOperator
-: assign = '=' 
-| multAssign = '*=' 
-| divAssign = '/=' 
-| modAssign = '%=' 
-| addAssign = '+=' 
-| subAssign = '-=' 
-| leftShiftAssign = '<<=' 
-| rightShiftAssign = '>>=' 
-| andAssign = '&=' 
-| xorAssign = '^=' 
-| orAssign = '|='
-;
 
+enum AssignmentOperator:
+	assign='='
+	| multAssign='*='
+	| divAssign='/='
+	| modAssign='%='
+	| addAssign='+='
+	| subAssign='-='
+	| leftShiftAssign='<<='
+	| rightShiftAssign='>>='
+	| andAssign='&='
+	| xorAssign='^='
+	| orAssign='|=';
 
 EventRaising:
 	'raise' event=[sct::Event|FQN] (':' value=Expression)?;
 
-
-//****************
+	//****************
 // Expression Grammar
 //****************
 //ExpressionRule:
@@ -202,10 +193,9 @@ EventRaising:
 Expression returns Expression:
 	ConditionalExpression;
 
-
-ConditionalExpression returns Expression
-:  	LogicalOrExpression ( {ConditionalExpression.condition=current} '?' trueCase=LogicalOrExpression ':' falseCase=LogicalOrExpression)?
-;
+ConditionalExpression returns Expression:
+	LogicalOrExpression ({ConditionalExpression.condition=current} '?' trueCase=LogicalOrExpression ':'
+	falseCase=LogicalOrExpression)?;
 
 LogicalOrExpression returns Expression:
 	LogicalAndExpression ({LogicalOrExpression.leftOperand=current} '||'
@@ -219,33 +209,27 @@ LogicalNotExpression returns Expression:
 	BitwiseXorExpression | {LogicalNotExpression} '!'
 	operand=BitwiseXorExpression;
 
-BitwiseXorExpression returns Expression
-	: BitwiseOrExpression ({BitwiseXorExpression.leftOperand=current} '^' rightOperand = BitwiseOrExpression)*
-	;
+BitwiseXorExpression returns Expression:
+	BitwiseOrExpression ({BitwiseXorExpression.leftOperand=current} '^' rightOperand=BitwiseOrExpression)*;
 
-BitwiseOrExpression returns Expression
-	: BitwiseAndExpression ({BitwiseOrExpression.leftOperand=current} '|' rightOperand = BitwiseAndExpression)*
-	;
+BitwiseOrExpression returns Expression:
+	BitwiseAndExpression ({BitwiseOrExpression.leftOperand=current} '|' rightOperand=BitwiseAndExpression)*;
 
-BitwiseAndExpression returns Expression
-	: LogicalRelationExpression ({BitwiseAndExpression.leftOperand=current} '&' rightOperand = LogicalRelationExpression)*
-	;
+BitwiseAndExpression returns Expression:
+	LogicalRelationExpression ({BitwiseAndExpression.leftOperand=current} '&' rightOperand=LogicalRelationExpression)*;
 
 LogicalRelationExpression returns Expression:
 	ShiftExpression
 	({LogicalRelationExpression.leftOperand=current} operator=RelationalOperator
 	rightOperand=ShiftExpression)*;
 
-ShiftExpression returns Expression
-:	NumericalAddSubtractExpression ({ShiftExpression.leftOperand=current} operator=ShiftOperator
-	rightOperand=NumericalAddSubtractExpression)*
-;	
-	
-enum ShiftOperator
-:	left = '<<'
-|   right = '>>'
-;
+ShiftExpression returns Expression:
+	NumericalAddSubtractExpression ({ShiftExpression.leftOperand=current} operator=ShiftOperator
+	rightOperand=NumericalAddSubtractExpression)*;
 
+enum ShiftOperator:
+	left='<<'
+	| right='>>';
 
 NumericalAddSubtractExpression returns Expression:
 	NumericalMultiplyDivideExpression
@@ -264,8 +248,7 @@ NumericalUnaryExpression returns Expression:
 	operator=UnaryOperator operand=PrimaryExpression;
 
 PrimaryExpression returns Expression:
-	ValueExpression | '(' Expression ')' | OperationCall ;
-	
+	ValueExpression | '(' Expression ')' | OperationCall;
 
 enum AdditiveOperator:
 	plus='+' | minus='-';
@@ -289,7 +272,8 @@ enum Type:
 	void | integer | real | boolean | string;
 
 ValueExpression returns Expression:
-	PrimitiveValueExpression | ElementReferenceExpression | ActiveStateReferenceExpression| EventValueReferenceExpression | EventRaisedReferenceExpression;
+	PrimitiveValueExpression | ElementReferenceExpression | ActiveStateReferenceExpression | EventValueReferenceExpression
+	| EventRaisedReferenceExpression;
 
 PrimitiveValueExpression returns Expression:
 	{PrimitiveValueExpression} value=Literal;
@@ -298,44 +282,39 @@ ElementReferenceExpression:
 	{ElementReferenceExpression} value=[sct::Declaration|FQN];
 
 EventValueReferenceExpression:
-	{EventValueReferenceExpression} 'valueof' '(' value=[sct::Event|FQN]')';
+	{EventValueReferenceExpression} 'valueof' '(' value=[sct::Event|FQN] ')';
 
 EventRaisedReferenceExpression:
-	{EventRaisedReferenceExpression} 'raised' '(' value=[sct::Event|FQN]')';
-	
-ActiveStateReferenceExpression:
-	{ActiveStateReferenceExpression}'active' '(' value=[sct::RegularState|FQN] ')' 
-;
+	{EventRaisedReferenceExpression} 'raised' '(' value=[sct::Event|FQN] ')';
 
+ActiveStateReferenceExpression:
+	{ActiveStateReferenceExpression} 'active' '(' value=[sct::RegularState|FQN] ')';
 
 OperationCall returns Expression:
 	{OperationCall} operation=[Operation|FQN] '(' (args+=Expression (',' args+=Expression)*)? ')';
 
 Literal:
-	BoolLiteral | IntLiteral | HexLiteral |  RealLiteral;
-	
+	BoolLiteral | IntLiteral | HexLiteral | RealLiteral;
+
 BoolLiteral:
-	{BoolLiteral} value=BOOL
-;
+	{BoolLiteral} value=BOOL;
+
 IntLiteral:
-	{IntLiteral} value = INT
-;
-RealLiteral: 
-	{RealLiteral} value = FLOAT
-;
+	{IntLiteral} value=INT;
+
+RealLiteral:
+	{RealLiteral} value=FLOAT;
+
 HexLiteral:
-	{HexLiteral} value = HEX
-;
+	{HexLiteral} value=HEX;
 
 terminal BOOL returns ecore::EBoolean:
 	'true' | 'false' | 'yes' | 'no';
 
-terminal HEX returns ecore::EInt: 
-	('0') ('x'|'X') ('0'..'9'|'a'..'f'|'A'..'F')+
-;
+terminal HEX returns ecore::EInt:
+	('0') ('x' | 'X') ('0'..'9' | 'a'..'f' | 'A'..'F')+;
 
 terminal FLOAT returns ecore::EFloat:
-	(INT '.' INT) ('e' ('-' | '+') INT)? ('f'|'F'|'d'|'D')?
-;
+	(INT '.' INT) ('e' ('-' | '+') INT)? ('f' | 'F' | 'd' | 'D')?;
 
 

+ 2 - 2
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java

@@ -37,7 +37,7 @@ import org.yakindu.sct.model.stext.stext.OnCycleEvent;
 import org.yakindu.sct.model.stext.stext.Operation;
 import org.yakindu.sct.model.stext.stext.ReactionTrigger;
 import org.yakindu.sct.model.stext.stext.SimpleScope;
-import org.yakindu.sct.model.stext.stext.StatechartDefinition;
+import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
 
@@ -160,7 +160,7 @@ public class STextJavaValidator extends AbstractSTextJavaValidator {
 
 	private boolean isStatechartDefinitionChild(EObject element) {
 		while (element.eContainer() != null) {
-			if (element.eContainer() instanceof StatechartDefinition) {
+			if (element.eContainer() instanceof StatechartSpecification) {
 				return true;
 			}
 			element = element.eContainer();

+ 6 - 0
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/runtime/impl/ExecutionContextImpl.java

@@ -88,13 +88,19 @@ public class ExecutionContextImpl extends AbstractExecutionContext implements
 	}
 
 	public boolean isEventRaised(String eventName) {
+		System.out.println("IsEvent Raised: " + eventName);
 		synchronized (raisedEvents) {
 			for (ExecutionEvent event : raisedEvents) {
 				if (eventName.equals(event.getName())) {
+					System.out.println("True");
 					return true;
 				}
 			}
 		}
+		System.out.println("False");
+		for (ExecutionEvent event : raisedEvents) {
+			System.out.println(event.getName());
+		}
 		return false;
 	}
 

+ 2 - 2
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/StateAntlrParser.java

@@ -1,7 +1,7 @@
 package org.yakindu.sct.ui.integration.stext.parsers;
 
 import org.yakindu.sct.model.stext.parser.antlr.STextParser;
-import org.yakindu.sct.model.stext.stext.SimpleScope;
+import org.yakindu.sct.model.stext.stext.StateSpecification;
 
 
 /**
@@ -12,6 +12,6 @@ import org.yakindu.sct.model.stext.stext.SimpleScope;
 public class StateAntlrParser extends STextParser {
 	@Override
 	protected String getDefaultRuleName() {
-		return SimpleScope.class.getSimpleName();
+		return StateSpecification.class.getSimpleName();
 	}
 }

+ 1 - 1
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/StateContentAssistParser.java

@@ -19,7 +19,7 @@ public class StateContentAssistParser extends STextParser   {
 			AbstractInternalContentAssistParser parser) {
 		try {
 			InternalSTextParser typedParser = (InternalSTextParser) parser;
-			typedParser.entryRuleSimpleScope();
+			typedParser.entryRuleStateSpecification();
 			return typedParser.getFollowElements();
 		} catch(RecognitionException ex) {
 			throw new RuntimeException(ex);

+ 2 - 2
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/StatechartAntlrParser.java

@@ -1,7 +1,7 @@
 package org.yakindu.sct.ui.integration.stext.parsers;
 
 import org.yakindu.sct.model.stext.parser.antlr.STextParser;
-import org.yakindu.sct.model.stext.stext.StatechartDefinition;
+import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 
 /**
  * 
@@ -11,6 +11,6 @@ import org.yakindu.sct.model.stext.stext.StatechartDefinition;
 public class StatechartAntlrParser extends STextParser {
 	@Override
 	protected String getDefaultRuleName() {
-		return StatechartDefinition.class.getSimpleName();
+		return StatechartSpecification.class.getSimpleName();
 	}
 }

+ 1 - 1
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/StatechartContentAssistParser.java

@@ -20,7 +20,7 @@ public class StatechartContentAssistParser extends STextParser {
 			AbstractInternalContentAssistParser parser) {
 		try {
 			InternalSTextParser typedParser = (InternalSTextParser) parser;
-			typedParser.entryRuleStatechartDefinition();
+			typedParser.entryRuleStatechartSpecification();
 			return typedParser.getFollowElements();
 		} catch (RecognitionException ex) {
 			throw new RuntimeException(ex);

+ 2 - 2
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/TransitionAntlrParser.java

@@ -1,7 +1,7 @@
 package org.yakindu.sct.ui.integration.stext.parsers;
 
 import org.yakindu.sct.model.stext.parser.antlr.STextParser;
-import org.yakindu.sct.model.stext.stext.TransitionStatement;
+import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 
 /**
  * @author muelder
@@ -9,6 +9,6 @@ import org.yakindu.sct.model.stext.stext.TransitionStatement;
 public class TransitionAntlrParser extends STextParser {
 	@Override
 	protected String getDefaultRuleName() {
-		return TransitionStatement.class.getSimpleName();
+		return TransitionSpecification.class.getSimpleName();
 	}
 }

+ 1 - 1
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/parsers/TransitionContentAssistParser.java

@@ -20,7 +20,7 @@ public class TransitionContentAssistParser extends STextParser {
 			AbstractInternalContentAssistParser parser) {
 		try {
 			InternalSTextParser typedParser = (InternalSTextParser) parser;
-			typedParser.entryRuleTransitionStatement();
+			typedParser.entryRuleTransitionSpecification();
 			return typedParser.getFollowElements();
 		} catch (RecognitionException ex) {
 			throw new RuntimeException(ex);