Browse Source

FeatureCalls must not end with a scope (YAKHMI-597)
TypedElementReferences could be operations and require '(' ')' in this case (YAKHMI-601)

benjamin.schwertfeger@gmail.com 13 years ago
parent
commit
d4327f2334
69 changed files with 4103 additions and 1912 deletions
  1. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_ActiveStateReferenceExpression.gif
  2. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_AssignmentExpression.gif
  3. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_BitwiseAndExpression.gif
  4. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_BitwiseOrExpression.gif
  5. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_BitwiseXorExpression.gif
  6. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_ConditionalExpression.gif
  7. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_EventRaisingExpression.gif
  8. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_EventValueReferenceExpression.gif
  9. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_Expression.gif
  10. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_FeatureCall.gif
  11. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_LogicalAndExpression.gif
  12. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_LogicalNotExpression.gif
  13. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_LogicalOrExpression.gif
  14. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_LogicalRelationExpression.gif
  15. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_NumericalAddSubtractExpression.gif
  16. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_NumericalMultiplyDivideExpression.gif
  17. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_NumericalUnaryExpression.gif
  18. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_PrimitiveValueExpression.gif
  19. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_ShiftExpression.gif
  20. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_TypedElementReferenceExpression.gif
  21. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_ActiveStateReferenceExpression.gif
  22. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_AssignmentExpression.gif
  23. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_BitwiseAndExpression.gif
  24. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_BitwiseOrExpression.gif
  25. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_BitwiseXorExpression.gif
  26. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_ConditionalExpression.gif
  27. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_EventRaisingExpression.gif
  28. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_EventValueReferenceExpression.gif
  29. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_Expression.gif
  30. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_FeatureCall.gif
  31. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_LogicalAndExpression.gif
  32. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_LogicalNotExpression.gif
  33. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_LogicalOrExpression.gif
  34. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_LogicalRelationExpression.gif
  35. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_NumericalAddSubtractExpression.gif
  36. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_NumericalMultiplyDivideExpression.gif
  37. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_NumericalUnaryExpression.gif
  38. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_PrimitiveValueExpression.gif
  39. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_ShiftExpression.gif
  40. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_TypedElementReferenceExpression.gif
  41. 4 0
      plugins/org.yakindu.sct.model.stext.edit/plugin.properties
  42. 0 32
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/OperationDefinitionItemProvider.java
  43. 175 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/TypedElementReferenceExpressionItemProvider.java
  44. 7 1
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/AbstractSTextProposalProvider.java
  45. 8 2
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/STextParser.java
  46. 314 12
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g
  47. 52 52
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSTextLexer.java
  48. 1952 1067
      plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSTextParser.java
  49. 4 5
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore
  50. 3 3
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.genmodel
  51. 19 2
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.xmi
  52. 269 24
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parseTreeConstruction/STextParsetreeConstructor.java
  53. 74 9
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g
  54. 52 52
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSTextLexer.java
  55. 719 509
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSTextParser.java
  56. 65 18
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/services/STextGrammarAccess.java
  57. 0 25
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/OperationDefinition.java
  58. 58 30
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StextPackage.java
  59. 46 0
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TypedElementReferenceExpression.java
  60. 0 39
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/OperationDefinitionImpl.java
  61. 24 12
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/StextPackageImpl.java
  62. 133 0
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TypedElementReferenceExpressionImpl.java
  63. 8 7
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/SText.xtext
  64. 39 1
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java
  65. 1 1
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/StaticTypeAnalyzer.xtend
  66. 1 1
      plugins/org.yakindu.sct.model.stext/xtend-gen/org/yakindu/sct/model/stext/validation/StaticTypeAnalyzer.java
  67. 3 1
      test-plugins/org.yakindu.sct.model.stext.test/META-INF/MANIFEST.MF
  68. 51 4
      test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/STextJavaValidatorTest.java
  69. 22 2
      test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/util/AbstractSTextTest.java

BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_ActiveStateReferenceExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_AssignmentExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_BitwiseAndExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_BitwiseOrExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_BitwiseXorExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_ConditionalExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_EventRaisingExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_EventValueReferenceExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_Expression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_FeatureCall.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_LogicalAndExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_LogicalNotExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_LogicalOrExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_LogicalRelationExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_NumericalAddSubtractExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_NumericalMultiplyDivideExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_NumericalUnaryExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_PrimitiveValueExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_ShiftExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateExpression_args_TypedElementReferenceExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_ActiveStateReferenceExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_AssignmentExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_BitwiseAndExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_BitwiseOrExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_BitwiseXorExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_ConditionalExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_EventRaisingExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_EventValueReferenceExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_Expression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_FeatureCall.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_LogicalAndExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_LogicalNotExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_LogicalOrExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_LogicalRelationExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_NumericalAddSubtractExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_NumericalMultiplyDivideExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_NumericalUnaryExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_PrimitiveValueExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_ShiftExpression.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTypedElementReferenceExpression_args_TypedElementReferenceExpression.gif


+ 4 - 0
plugins/org.yakindu.sct.model.stext.edit/plugin.properties

@@ -217,3 +217,7 @@ _UI_Expression_feature_feature = Feature
 _UI_Expression_child_feature = Child
 _UI_Expression_children_feature = Children
 _UI_Expression_features_feature = Features
+_UI_Expression_operationCall_feature = Operation Call
+_UI_Expression_args_feature = Args
+_UI_TypedElementReferenceExpression_operationCall_feature = Operation Call
+_UI_TypedElementReferenceExpression_args_feature = Args

+ 0 - 32
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/OperationDefinitionItemProvider.java

@@ -116,7 +116,6 @@ public class OperationDefinitionItemProvider
     {
       super.getChildrenFeatures(object);
       childrenFeatures.add(TypesPackage.Literals.OPERATION__PARAMETERS);
-      childrenFeatures.add(StextPackage.Literals.OPERATION_DEFINITION__PARAMS);
     }
     return childrenFeatures;
   }
@@ -177,7 +176,6 @@ public class OperationDefinitionItemProvider
     switch (notification.getFeatureID(OperationDefinition.class))
     {
       case StextPackage.OPERATION_DEFINITION__PARAMETERS:
-      case StextPackage.OPERATION_DEFINITION__PARAMS:
         fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
         return;
     }
@@ -200,36 +198,6 @@ public class OperationDefinitionItemProvider
       (createChildParameter
         (TypesPackage.Literals.OPERATION__PARAMETERS,
          TypesFactory.eINSTANCE.createParameter()));
-
-    newChildDescriptors.add
-      (createChildParameter
-        (StextPackage.Literals.OPERATION_DEFINITION__PARAMS,
-         TypesFactory.eINSTANCE.createParameter()));
-  }
-
-  /**
-   * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection)
-  {
-    Object childFeature = feature;
-    Object childObject = child;
-
-    boolean qualify =
-      childFeature == TypesPackage.Literals.OPERATION__PARAMETERS ||
-      childFeature == StextPackage.Literals.OPERATION_DEFINITION__PARAMS;
-
-    if (qualify)
-    {
-      return getString
-        ("_UI_CreateChild_text2",
-         new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
-    }
-    return super.getCreateChildText(owner, feature, child, selection);
   }
 
   /**

+ 175 - 1
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/TypedElementReferenceExpressionItemProvider.java

@@ -13,6 +13,8 @@ import java.util.List;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.ecore.EStructuralFeature;
+
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -20,8 +22,12 @@ import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 
+import org.yakindu.sct.model.stext.stext.StextFactory;
 import org.yakindu.sct.model.stext.stext.StextPackage;
+import org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression;
 
 /**
  * This is the item provider adapter for a {@link org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression} object.
@@ -63,6 +69,7 @@ public class TypedElementReferenceExpressionItemProvider
       super.getPropertyDescriptors(object);
 
       addReferencePropertyDescriptor(object);
+      addOperationCallPropertyDescriptor(object);
     }
     return itemPropertyDescriptors;
   }
@@ -90,6 +97,62 @@ public class TypedElementReferenceExpressionItemProvider
          null));
   }
 
+  /**
+   * This adds a property descriptor for the Operation Call feature.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected void addOperationCallPropertyDescriptor(Object object)
+  {
+    itemPropertyDescriptors.add
+      (createItemPropertyDescriptor
+        (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+         getResourceLocator(),
+         getString("_UI_TypedElementReferenceExpression_operationCall_feature"),
+         getString("_UI_PropertyDescriptor_description", "_UI_TypedElementReferenceExpression_operationCall_feature", "_UI_TypedElementReferenceExpression_type"),
+         StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL,
+         true,
+         false,
+         false,
+         ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+         null,
+         null));
+  }
+
+  /**
+   * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+   * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+   * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+  {
+    if (childrenFeatures == null)
+    {
+      super.getChildrenFeatures(object);
+      childrenFeatures.add(StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS);
+    }
+    return childrenFeatures;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EStructuralFeature getChildFeature(Object object, Object child)
+  {
+    // Check the type of the specified child object and return the proper feature to use for
+    // adding (see {@link AddCommand}) it as a child.
+
+    return super.getChildFeature(object, child);
+  }
+
   /**
    * This returns TypedElementReferenceExpression.gif.
    * <!-- begin-user-doc -->
@@ -111,7 +174,8 @@ public class TypedElementReferenceExpressionItemProvider
   @Override
   public String getText(Object object)
   {
-    return getString("_UI_TypedElementReferenceExpression_type");
+    TypedElementReferenceExpression typedElementReferenceExpression = (TypedElementReferenceExpression)object;
+    return getString("_UI_TypedElementReferenceExpression_type") + " " + typedElementReferenceExpression.isOperationCall();
   }
 
   /**
@@ -125,6 +189,16 @@ public class TypedElementReferenceExpressionItemProvider
   public void notifyChanged(Notification notification)
   {
     updateChildren(notification);
+
+    switch (notification.getFeatureID(TypedElementReferenceExpression.class))
+    {
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL:
+        fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+        return;
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS:
+        fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+        return;
+    }
     super.notifyChanged(notification);
   }
 
@@ -139,6 +213,106 @@ public class TypedElementReferenceExpressionItemProvider
   protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
   {
     super.collectNewChildDescriptors(newChildDescriptors, object);
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createEventRaisingExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createAssignmentExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createConditionalExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createLogicalOrExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createLogicalAndExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createLogicalNotExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createBitwiseXorExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createBitwiseOrExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createBitwiseAndExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createLogicalRelationExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createShiftExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createNumericalAddSubtractExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createNumericalMultiplyDivideExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createNumericalUnaryExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createPrimitiveValueExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createFeatureCall()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createTypedElementReferenceExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createEventValueReferenceExpression()));
+
+    newChildDescriptors.add
+      (createChildParameter
+        (StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS,
+         StextFactory.eINSTANCE.createActiveStateReferenceExpression()));
   }
 
 }

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

@@ -98,7 +98,7 @@ public class AbstractSTextProposalProvider extends TerminalsProposalProvider {
 	public void completeOperationDefinition_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeOperationDefinition_Params(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeOperationDefinition_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeOperationDefinition_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -246,6 +246,12 @@ public class AbstractSTextProposalProvider extends TerminalsProposalProvider {
 	public void completeTypedElementReferenceExpression_Reference(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeTypedElementReferenceExpression_OperationCall(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTypedElementReferenceExpression_Args(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeEventValueReferenceExpression_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}

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

@@ -145,6 +145,9 @@ public class STextParser extends AbstractContentAssistParser {
 					put(grammarAccess.getFeatureCallAccess().getGroup_1_3_1(), "rule__FeatureCall__Group_1_3_1__0");
 					put(grammarAccess.getFeatureCallAccess().getGroup_1_3_1_1(), "rule__FeatureCall__Group_1_3_1_1__0");
 					put(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup(), "rule__TypedElementReferenceExpression__Group__0");
+					put(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2(), "rule__TypedElementReferenceExpression__Group_2__0");
+					put(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2_1(), "rule__TypedElementReferenceExpression__Group_2_1__0");
+					put(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2_1_1(), "rule__TypedElementReferenceExpression__Group_2_1_1__0");
 					put(grammarAccess.getEventValueReferenceExpressionAccess().getGroup(), "rule__EventValueReferenceExpression__Group__0");
 					put(grammarAccess.getActiveStateReferenceExpressionAccess().getGroup(), "rule__ActiveStateReferenceExpression__Group__0");
 					put(grammarAccess.getBoolLiteralAccess().getGroup(), "rule__BoolLiteral__Group__0");
@@ -176,8 +179,8 @@ public class STextParser extends AbstractContentAssistParser {
 					put(grammarAccess.getVariableDefinitionAccess().getTypeAssignment_5(), "rule__VariableDefinition__TypeAssignment_5");
 					put(grammarAccess.getVariableDefinitionAccess().getInitialValueAssignment_6_1(), "rule__VariableDefinition__InitialValueAssignment_6_1");
 					put(grammarAccess.getOperationDefinitionAccess().getNameAssignment_2(), "rule__OperationDefinition__NameAssignment_2");
-					put(grammarAccess.getOperationDefinitionAccess().getParamsAssignment_4_0(), "rule__OperationDefinition__ParamsAssignment_4_0");
-					put(grammarAccess.getOperationDefinitionAccess().getParamsAssignment_4_1_1(), "rule__OperationDefinition__ParamsAssignment_4_1_1");
+					put(grammarAccess.getOperationDefinitionAccess().getParametersAssignment_4_0(), "rule__OperationDefinition__ParametersAssignment_4_0");
+					put(grammarAccess.getOperationDefinitionAccess().getParametersAssignment_4_1_1(), "rule__OperationDefinition__ParametersAssignment_4_1_1");
 					put(grammarAccess.getOperationDefinitionAccess().getTypeAssignment_6_1(), "rule__OperationDefinition__TypeAssignment_6_1");
 					put(grammarAccess.getParameterAccess().getNameAssignment_0(), "rule__Parameter__NameAssignment_0");
 					put(grammarAccess.getParameterAccess().getTypeAssignment_2(), "rule__Parameter__TypeAssignment_2");
@@ -230,6 +233,9 @@ public class STextParser extends AbstractContentAssistParser {
 					put(grammarAccess.getFeatureCallAccess().getArgsAssignment_1_3_1_0(), "rule__FeatureCall__ArgsAssignment_1_3_1_0");
 					put(grammarAccess.getFeatureCallAccess().getArgsAssignment_1_3_1_1_1(), "rule__FeatureCall__ArgsAssignment_1_3_1_1_1");
 					put(grammarAccess.getTypedElementReferenceExpressionAccess().getReferenceAssignment_1(), "rule__TypedElementReferenceExpression__ReferenceAssignment_1");
+					put(grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallAssignment_2_0(), "rule__TypedElementReferenceExpression__OperationCallAssignment_2_0");
+					put(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsAssignment_2_1_0(), "rule__TypedElementReferenceExpression__ArgsAssignment_2_1_0");
+					put(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsAssignment_2_1_1_1(), "rule__TypedElementReferenceExpression__ArgsAssignment_2_1_1_1");
 					put(grammarAccess.getEventValueReferenceExpressionAccess().getValueAssignment_3(), "rule__EventValueReferenceExpression__ValueAssignment_3");
 					put(grammarAccess.getActiveStateReferenceExpressionAccess().getValueAssignment_3(), "rule__ActiveStateReferenceExpression__ValueAssignment_3");
 					put(grammarAccess.getBoolLiteralAccess().getValueAssignment_1(), "rule__BoolLiteral__ValueAssignment_1");

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

@@ -4529,9 +4529,9 @@ rule__OperationDefinition__Group_4__0__Impl
     }
 :
 (
-{ before(grammarAccess.getOperationDefinitionAccess().getParamsAssignment_4_0()); }
-(rule__OperationDefinition__ParamsAssignment_4_0)
-{ after(grammarAccess.getOperationDefinitionAccess().getParamsAssignment_4_0()); }
+{ before(grammarAccess.getOperationDefinitionAccess().getParametersAssignment_4_0()); }
+(rule__OperationDefinition__ParametersAssignment_4_0)
+{ after(grammarAccess.getOperationDefinitionAccess().getParametersAssignment_4_0()); }
 )
 
 ;
@@ -4620,9 +4620,9 @@ rule__OperationDefinition__Group_4_1__1__Impl
     }
 :
 (
-{ before(grammarAccess.getOperationDefinitionAccess().getParamsAssignment_4_1_1()); }
-(rule__OperationDefinition__ParamsAssignment_4_1_1)
-{ after(grammarAccess.getOperationDefinitionAccess().getParamsAssignment_4_1_1()); }
+{ before(grammarAccess.getOperationDefinitionAccess().getParametersAssignment_4_1_1()); }
+(rule__OperationDefinition__ParametersAssignment_4_1_1)
+{ after(grammarAccess.getOperationDefinitionAccess().getParametersAssignment_4_1_1()); }
 )
 
 ;
@@ -9541,6 +9541,7 @@ rule__TypedElementReferenceExpression__Group__1
     }
 :
 	rule__TypedElementReferenceExpression__Group__1__Impl
+	rule__TypedElementReferenceExpression__Group__2
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -9563,6 +9564,254 @@ finally {
 }
 
 
+rule__TypedElementReferenceExpression__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TypedElementReferenceExpression__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2()); }
+(rule__TypedElementReferenceExpression__Group_2__0)?
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__TypedElementReferenceExpression__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TypedElementReferenceExpression__Group_2__0__Impl
+	rule__TypedElementReferenceExpression__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallAssignment_2_0()); }
+(rule__TypedElementReferenceExpression__OperationCallAssignment_2_0)
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallAssignment_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TypedElementReferenceExpression__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TypedElementReferenceExpression__Group_2__1__Impl
+	rule__TypedElementReferenceExpression__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2_1()); }
+(rule__TypedElementReferenceExpression__Group_2_1__0)?
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TypedElementReferenceExpression__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TypedElementReferenceExpression__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getRightParenthesisKeyword_2_2()); }
+
+	')' 
+
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getRightParenthesisKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__TypedElementReferenceExpression__Group_2_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TypedElementReferenceExpression__Group_2_1__0__Impl
+	rule__TypedElementReferenceExpression__Group_2_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__Group_2_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsAssignment_2_1_0()); }
+(rule__TypedElementReferenceExpression__ArgsAssignment_2_1_0)
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsAssignment_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TypedElementReferenceExpression__Group_2_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TypedElementReferenceExpression__Group_2_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__Group_2_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2_1_1()); }
+(rule__TypedElementReferenceExpression__Group_2_1_1__0)*
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TypedElementReferenceExpression__Group_2_1_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TypedElementReferenceExpression__Group_2_1_1__0__Impl
+	rule__TypedElementReferenceExpression__Group_2_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__Group_2_1_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getCommaKeyword_2_1_1_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getCommaKeyword_2_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TypedElementReferenceExpression__Group_2_1_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TypedElementReferenceExpression__Group_2_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__Group_2_1_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsAssignment_2_1_1_1()); }
+(rule__TypedElementReferenceExpression__ArgsAssignment_2_1_1_1)
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsAssignment_2_1_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
 
 
 
@@ -10690,14 +10939,14 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__OperationDefinition__ParamsAssignment_4_0
+rule__OperationDefinition__ParametersAssignment_4_0
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getOperationDefinitionAccess().getParamsParameterParserRuleCall_4_0_0()); }
-	ruleParameter{ after(grammarAccess.getOperationDefinitionAccess().getParamsParameterParserRuleCall_4_0_0()); }
+{ before(grammarAccess.getOperationDefinitionAccess().getParametersParameterParserRuleCall_4_0_0()); }
+	ruleParameter{ after(grammarAccess.getOperationDefinitionAccess().getParametersParameterParserRuleCall_4_0_0()); }
 )
 
 ;
@@ -10705,14 +10954,14 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__OperationDefinition__ParamsAssignment_4_1_1
+rule__OperationDefinition__ParametersAssignment_4_1_1
     @init {
 		int stackSize = keepStackSize();
     }
 :
 (
-{ before(grammarAccess.getOperationDefinitionAccess().getParamsParameterParserRuleCall_4_1_1_0()); }
-	ruleParameter{ after(grammarAccess.getOperationDefinitionAccess().getParamsParameterParserRuleCall_4_1_1_0()); }
+{ before(grammarAccess.getOperationDefinitionAccess().getParametersParameterParserRuleCall_4_1_1_0()); }
+	ruleParameter{ after(grammarAccess.getOperationDefinitionAccess().getParametersParameterParserRuleCall_4_1_1_0()); }
 )
 
 ;
@@ -11534,6 +11783,59 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypedElementReferenceExpression__OperationCallAssignment_2_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallLeftParenthesisKeyword_2_0_0()); }
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallLeftParenthesisKeyword_2_0_0()); }
+
+	'(' 
+
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallLeftParenthesisKeyword_2_0_0()); }
+)
+
+{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallLeftParenthesisKeyword_2_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__ArgsAssignment_2_1_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsExpressionParserRuleCall_2_1_0_0()); }
+	ruleExpression{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsExpressionParserRuleCall_2_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypedElementReferenceExpression__ArgsAssignment_2_1_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsExpressionParserRuleCall_2_1_1_1_0()); }
+	ruleExpression{ after(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsExpressionParserRuleCall_2_1_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__EventValueReferenceExpression__ValueAssignment_3
     @init {
 		int stackSize = keepStackSize();

+ 52 - 52
plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSTextLexer.java

@@ -1602,10 +1602,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_BOOL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11647:11: ( ( 'true' | 'false' | 'yes' | 'no' ) )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11647:13: ( 'true' | 'false' | 'yes' | 'no' )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11949:11: ( ( 'true' | 'false' | 'yes' | 'no' ) )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11949:13: ( 'true' | 'false' | 'yes' | 'no' )
             {
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11647:13: ( 'true' | 'false' | 'yes' | 'no' )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11949:13: ( 'true' | 'false' | 'yes' | 'no' )
             int alt1=4;
             switch ( input.LA(1) ) {
             case 't':
@@ -1637,7 +1637,7 @@ public class InternalSTextLexer extends Lexer {
 
             switch (alt1) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11647:14: 'true'
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11949:14: 'true'
                     {
                     match("true"); 
 
@@ -1645,7 +1645,7 @@ public class InternalSTextLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11647:21: 'false'
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11949:21: 'false'
                     {
                     match("false"); 
 
@@ -1653,7 +1653,7 @@ public class InternalSTextLexer extends Lexer {
                     }
                     break;
                 case 3 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11647:29: 'yes'
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11949:29: 'yes'
                     {
                     match("yes"); 
 
@@ -1661,7 +1661,7 @@ public class InternalSTextLexer extends Lexer {
                     }
                     break;
                 case 4 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11647:35: 'no'
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11949:35: 'no'
                     {
                     match("no"); 
 
@@ -1687,8 +1687,8 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11649:10: ( '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11649:12: '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11951:10: ( '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11951:12: '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
             {
             match('0'); 
             if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
@@ -1700,7 +1700,7 @@ public class InternalSTextLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11649:26: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11951:26: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
             int cnt2=0;
             loop2:
             do {
@@ -1754,13 +1754,13 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_FLOAT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11651:12: ( RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )? )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11651:14: RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )?
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11953:12: ( RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )? )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11953:14: RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )?
             {
             mRULE_INT(); 
             match('.'); 
             mRULE_INT(); 
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11651:36: ( 'e' ( '-' | '+' ) RULE_INT )?
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11953:36: ( 'e' ( '-' | '+' ) RULE_INT )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1769,7 +1769,7 @@ public class InternalSTextLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11651:37: 'e' ( '-' | '+' ) RULE_INT
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11953:37: 'e' ( '-' | '+' ) RULE_INT
                     {
                     match('e'); 
                     if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
@@ -1788,7 +1788,7 @@ public class InternalSTextLexer extends Lexer {
 
             }
 
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11651:62: ( 'f' | 'F' | 'd' | 'D' )?
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11953:62: ( 'f' | 'F' | 'd' | 'D' )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -1830,10 +1830,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11653:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11653:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11955:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11955:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11653:11: ( '^' )?
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11955:11: ( '^' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -1842,7 +1842,7 @@ public class InternalSTextLexer extends Lexer {
             }
             switch (alt5) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11653:11: '^'
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11955:11: '^'
                     {
                     match('^'); 
 
@@ -1860,7 +1860,7 @@ public class InternalSTextLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11653:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11955:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop6:
             do {
                 int alt6=2;
@@ -1909,10 +1909,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11655:10: ( ( '0' .. '9' )+ )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11655:12: ( '0' .. '9' )+
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11957:10: ( ( '0' .. '9' )+ )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11957:12: ( '0' .. '9' )+
             {
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11655:12: ( '0' .. '9' )+
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11957:12: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -1926,7 +1926,7 @@ public class InternalSTextLexer extends Lexer {
 
                 switch (alt7) {
             	case 1 :
-            	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11655:13: '0' .. '9'
+            	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11957:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -1958,10 +1958,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             {
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1979,10 +1979,10 @@ public class InternalSTextLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
                     {
                     match('\"'); 
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop8:
                     do {
                         int alt8=3;
@@ -1998,7 +1998,7 @@ public class InternalSTextLexer extends Lexer {
 
                         switch (alt8) {
                     	case 1 :
-                    	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+                    	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                     	    {
                     	    match('\\'); 
                     	    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@@ -2014,7 +2014,7 @@ public class InternalSTextLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:66: ~ ( ( '\\\\' | '\"' ) )
+                    	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:66: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2039,10 +2039,10 @@ public class InternalSTextLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
                     {
                     match('\''); 
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop9:
                     do {
                         int alt9=3;
@@ -2058,7 +2058,7 @@ public class InternalSTextLexer extends Lexer {
 
                         switch (alt9) {
                     	case 1 :
-                    	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+                    	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                     	    {
                     	    match('\\'); 
                     	    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@@ -2074,7 +2074,7 @@ public class InternalSTextLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11657:137: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11959:137: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2117,12 +2117,12 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11659:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11659:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11961:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11961:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11659:24: ( options {greedy=false; } : . )*
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11961:24: ( options {greedy=false; } : . )*
             loop11:
             do {
                 int alt11=2;
@@ -2147,7 +2147,7 @@ public class InternalSTextLexer extends Lexer {
 
                 switch (alt11) {
             	case 1 :
-            	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11659:52: .
+            	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11961:52: .
             	    {
             	    matchAny(); 
 
@@ -2177,12 +2177,12 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11661:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11661:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11963:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11963:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11661:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11963:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop12:
             do {
                 int alt12=2;
@@ -2195,7 +2195,7 @@ public class InternalSTextLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11661:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11963:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2215,7 +2215,7 @@ public class InternalSTextLexer extends Lexer {
                 }
             } while (true);
 
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11661:40: ( ( '\\r' )? '\\n' )?
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11963:40: ( ( '\\r' )? '\\n' )?
             int alt14=2;
             int LA14_0 = input.LA(1);
 
@@ -2224,9 +2224,9 @@ public class InternalSTextLexer extends Lexer {
             }
             switch (alt14) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11661:41: ( '\\r' )? '\\n'
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11963:41: ( '\\r' )? '\\n'
                     {
-                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11661:41: ( '\\r' )?
+                    // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11963:41: ( '\\r' )?
                     int alt13=2;
                     int LA13_0 = input.LA(1);
 
@@ -2235,7 +2235,7 @@ public class InternalSTextLexer extends Lexer {
                     }
                     switch (alt13) {
                         case 1 :
-                            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11661:41: '\\r'
+                            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11963:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2267,10 +2267,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11663:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11663:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11965:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11965:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11663:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11965:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt15=0;
             loop15:
             do {
@@ -2324,8 +2324,8 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11665:16: ( . )
-            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11665:18: .
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11967:16: ( . )
+            // ../org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSText.g:11967:18: .
             {
             matchAny(); 
 

File diff suppressed because it is too large
+ 1952 - 1067
plugins/org.yakindu.sct.model.stext.ui/src-gen/org/yakindu/sct/model/stext/ui/contentassist/antlr/internal/InternalSTextParser.java


+ 4 - 5
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore

@@ -55,11 +55,7 @@
     <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="OperationDefinition" eSuperTypes="platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Declaration platform:/resource/org.yakindu.base.types/model/types.ecore#//Operation">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="params" upperBound="-1"
-        eType="ecore:EClass platform:/resource/org.yakindu.base.types/model/types.ecore#//Parameter"
-        containment="true"/>
-  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="OperationDefinition" eSuperTypes="platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Declaration platform:/resource/org.yakindu.base.types/model/types.ecore#//Operation"/>
   <eClassifiers xsi:type="ecore:EClass" name="LocalReaction" eSuperTypes="platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Declaration 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"/>
@@ -279,6 +275,9 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TypedElementReferenceExpression" eSuperTypes="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Expression">
     <eStructuralFeatures xsi:type="ecore:EReference" name="reference" eType="ecore:EClass platform:/resource/org.yakindu.base.types/model/base.ecore#//NamedElement"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="operationCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="args" upperBound="-1" 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="EventValueReferenceExpression" eSuperTypes="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Expression">
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="ecore:EClass platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//Expression"

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

@@ -99,9 +99,7 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//VariableDefinition/external"/>
       <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#//OperationDefinition">
-      <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#//OperationDefinition/params"/>
-    </genClasses>
+    <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//OperationDefinition"/>
     <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//LocalReaction">
       <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#//LocalReaction/properties"/>
     </genClasses>
@@ -232,6 +230,8 @@
     </genClasses>
     <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TypedElementReferenceExpression">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TypedElementReferenceExpression/reference"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//TypedElementReferenceExpression/operationCall"/>
+      <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#//TypedElementReferenceExpression/args"/>
     </genClasses>
     <genClasses ecoreClass="platform:/resource/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.ecore#//EventValueReferenceExpression">
       <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#//EventValueReferenceExpression/value"/>

+ 19 - 2
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/SText.xmi

@@ -369,12 +369,12 @@
         </elements>
         <elements xsi:type="xtext:Keyword" value="("/>
         <elements xsi:type="xtext:Group" cardinality="?">
-          <elements xsi:type="xtext:Assignment" feature="params" operator="+=">
+          <elements xsi:type="xtext:Assignment" feature="parameters" operator="+=">
             <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
           </elements>
           <elements xsi:type="xtext:Group" cardinality="*">
             <elements xsi:type="xtext:Keyword" value=","/>
-            <elements xsi:type="xtext:Assignment" feature="params" operator="+=">
+            <elements xsi:type="xtext:Assignment" feature="parameters" operator="+=">
               <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
             </elements>
           </elements>
@@ -1154,6 +1154,23 @@
             <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
           </terminal>
         </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Assignment" predicated="true" feature="operationCall" operator="?=">
+            <terminal xsi:type="xtext:Keyword" value="("/>
+          </elements>
+          <elements xsi:type="xtext:Group" cardinality="?">
+            <elements xsi:type="xtext:Assignment" feature="args" operator="+=">
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.52"/>
+            </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.52"/>
+              </elements>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value=")"/>
+        </elements>
       </alternatives>
     </rules>
     <rules xsi:type="xtext:ParserRule" name="EventValueReferenceExpression">

+ 269 - 24
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parseTreeConstruction/STextParsetreeConstructor.java

@@ -3214,12 +3214,12 @@ protected class OperationFeature_OperationDefinitionParserRuleCall extends RuleC
 /************ begin Rule OperationDefinition ****************
  *
  * OperationDefinition:
- * 	{OperationDefinition} "operation" name=ID "(" (params+=Parameter ("," params+=Parameter)*)? ")" (":"
+ * 	{OperationDefinition} "operation" name=ID "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" (":"
  * 	type=[types::Type|FQN])?;
  *
  **/
 
-// {OperationDefinition} "operation" name=ID "(" (params+=Parameter ("," params+=Parameter)*)? ")" (":"
+// {OperationDefinition} "operation" name=ID "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" (":"
 // type=[types::Type|FQN])?
 protected class OperationDefinition_Group extends GroupToken {
 	
@@ -3354,7 +3354,7 @@ protected class OperationDefinition_LeftParenthesisKeyword_3 extends KeywordToke
 
 }
 
-// (params+=Parameter ("," params+=Parameter)*)?
+// (parameters+=Parameter ("," parameters+=Parameter)*)?
 protected class OperationDefinition_Group_4 extends GroupToken {
 	
 	public OperationDefinition_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
@@ -3370,23 +3370,23 @@ protected class OperationDefinition_Group_4 extends GroupToken {
 	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
 		switch(index) {
 			case 0: return new OperationDefinition_Group_4_1(lastRuleCallOrigin, this, 0, inst);
-			case 1: return new OperationDefinition_ParamsAssignment_4_0(lastRuleCallOrigin, this, 1, inst);
+			case 1: return new OperationDefinition_ParametersAssignment_4_0(lastRuleCallOrigin, this, 1, inst);
 			default: return null;
 		}	
 	}
 
 }
 
-// params+=Parameter
-protected class OperationDefinition_ParamsAssignment_4_0 extends AssignmentToken  {
+// parameters+=Parameter
+protected class OperationDefinition_ParametersAssignment_4_0 extends AssignmentToken  {
 	
-	public OperationDefinition_ParamsAssignment_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+	public OperationDefinition_ParametersAssignment_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
 		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
 	}
 	
 	@Override
 	public Assignment getGrammarElement() {
-		return grammarAccess.getOperationDefinitionAccess().getParamsAssignment_4_0();
+		return grammarAccess.getOperationDefinitionAccess().getParametersAssignment_4_0();
 	}
 
     @Override
@@ -3399,13 +3399,13 @@ protected class OperationDefinition_ParamsAssignment_4_0 extends AssignmentToken
 
     @Override	
 	public IEObjectConsumer tryConsume() {
-		if((value = eObjectConsumer.getConsumable("params",true)) == null) return null;
-		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("params");
+		if((value = eObjectConsumer.getConsumable("parameters",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parameters");
 		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
 			IEObjectConsumer param = createEObjectConsumer((EObject)value);
 			if(param.isInstanceOf(grammarAccess.getParameterRule().getType().getClassifier())) {
 				type = AssignmentType.PARSER_RULE_CALL;
-				element = grammarAccess.getOperationDefinitionAccess().getParamsParameterParserRuleCall_4_0_0(); 
+				element = grammarAccess.getOperationDefinitionAccess().getParametersParameterParserRuleCall_4_0_0(); 
 				consumed = obj;
 				return param;
 			}
@@ -3423,7 +3423,7 @@ protected class OperationDefinition_ParamsAssignment_4_0 extends AssignmentToken
 	}	
 }
 
-// ("," params+=Parameter)*
+// ("," parameters+=Parameter)*
 protected class OperationDefinition_Group_4_1 extends GroupToken {
 	
 	public OperationDefinition_Group_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
@@ -3438,7 +3438,7 @@ protected class OperationDefinition_Group_4_1 extends GroupToken {
     @Override
 	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
 		switch(index) {
-			case 0: return new OperationDefinition_ParamsAssignment_4_1_1(lastRuleCallOrigin, this, 0, inst);
+			case 0: return new OperationDefinition_ParametersAssignment_4_1_1(lastRuleCallOrigin, this, 0, inst);
 			default: return null;
 		}	
 	}
@@ -3461,23 +3461,23 @@ protected class OperationDefinition_CommaKeyword_4_1_0 extends KeywordToken  {
 	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
 		switch(index) {
 			case 0: return new OperationDefinition_Group_4_1(lastRuleCallOrigin, this, 0, inst);
-			case 1: return new OperationDefinition_ParamsAssignment_4_0(lastRuleCallOrigin, this, 1, inst);
+			case 1: return new OperationDefinition_ParametersAssignment_4_0(lastRuleCallOrigin, this, 1, inst);
 			default: return null;
 		}	
 	}
 
 }
 
-// params+=Parameter
-protected class OperationDefinition_ParamsAssignment_4_1_1 extends AssignmentToken  {
+// parameters+=Parameter
+protected class OperationDefinition_ParametersAssignment_4_1_1 extends AssignmentToken  {
 	
-	public OperationDefinition_ParamsAssignment_4_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+	public OperationDefinition_ParametersAssignment_4_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
 		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
 	}
 	
 	@Override
 	public Assignment getGrammarElement() {
-		return grammarAccess.getOperationDefinitionAccess().getParamsAssignment_4_1_1();
+		return grammarAccess.getOperationDefinitionAccess().getParametersAssignment_4_1_1();
 	}
 
     @Override
@@ -3490,13 +3490,13 @@ protected class OperationDefinition_ParamsAssignment_4_1_1 extends AssignmentTok
 
     @Override	
 	public IEObjectConsumer tryConsume() {
-		if((value = eObjectConsumer.getConsumable("params",false)) == null) return null;
-		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("params");
+		if((value = eObjectConsumer.getConsumable("parameters",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parameters");
 		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
 			IEObjectConsumer param = createEObjectConsumer((EObject)value);
 			if(param.isInstanceOf(grammarAccess.getParameterRule().getType().getClassifier())) {
 				type = AssignmentType.PARSER_RULE_CALL;
-				element = grammarAccess.getOperationDefinitionAccess().getParamsParameterParserRuleCall_4_1_1_0(); 
+				element = grammarAccess.getOperationDefinitionAccess().getParametersParameterParserRuleCall_4_1_1_0(); 
 				consumed = obj;
 				return param;
 			}
@@ -11121,11 +11121,13 @@ protected class FeatureCall_RightParenthesisKeyword_1_3_2 extends KeywordToken
 /************ begin Rule TypedElementReferenceExpression ****************
  *
  * TypedElementReferenceExpression returns Expression:
- * 	{TypedElementReferenceExpression} reference=[base::NamedElement];
+ * 	{TypedElementReferenceExpression} reference=[base::NamedElement] (=> operationCall?="(" (args+=Expression (","
+ * 	args+=Expression)*)? ")")?;
  *
  **/
 
-// {TypedElementReferenceExpression} reference=[base::NamedElement]
+// {TypedElementReferenceExpression} reference=[base::NamedElement] (=> operationCall?="(" (args+=Expression (","
+// args+=Expression)*)? ")")?
 protected class TypedElementReferenceExpression_Group extends GroupToken {
 	
 	public TypedElementReferenceExpression_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
@@ -11140,7 +11142,8 @@ protected class TypedElementReferenceExpression_Group extends GroupToken {
     @Override
 	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
 		switch(index) {
-			case 0: return new TypedElementReferenceExpression_ReferenceAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			case 0: return new TypedElementReferenceExpression_Group_2(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new TypedElementReferenceExpression_ReferenceAssignment_1(lastRuleCallOrigin, this, 1, inst);
 			default: return null;
 		}	
 	}
@@ -11217,6 +11220,248 @@ protected class TypedElementReferenceExpression_ReferenceAssignment_1 extends As
 
 }
 
+// (=> operationCall?="(" (args+=Expression ("," args+=Expression)*)? ")")?
+protected class TypedElementReferenceExpression_Group_2 extends GroupToken {
+	
+	public TypedElementReferenceExpression_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new TypedElementReferenceExpression_RightParenthesisKeyword_2_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// => operationCall?="("
+protected class TypedElementReferenceExpression_OperationCallAssignment_2_0 extends AssignmentToken  {
+	
+	public TypedElementReferenceExpression_OperationCallAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallAssignment_2_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new TypedElementReferenceExpression_ReferenceAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("operationCall",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operationCall");
+		if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+			type = AssignmentType.KEYWORD;
+			element = grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallLeftParenthesisKeyword_2_0_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// (args+=Expression ("," args+=Expression)*)?
+protected class TypedElementReferenceExpression_Group_2_1 extends GroupToken {
+	
+	public TypedElementReferenceExpression_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new TypedElementReferenceExpression_Group_2_1_1(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new TypedElementReferenceExpression_ArgsAssignment_2_1_0(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// args+=Expression
+protected class TypedElementReferenceExpression_ArgsAssignment_2_1_0 extends AssignmentToken  {
+	
+	public TypedElementReferenceExpression_ArgsAssignment_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTypedElementReferenceExpressionAccess().getArgsAssignment_2_1_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Expression_AssignmentExpressionParserRuleCall(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("args",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getTypedElementReferenceExpressionAccess().getArgsExpressionParserRuleCall_2_1_0_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new TypedElementReferenceExpression_OperationCallAssignment_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// ("," args+=Expression)*
+protected class TypedElementReferenceExpression_Group_2_1_1 extends GroupToken {
+	
+	public TypedElementReferenceExpression_Group_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getTypedElementReferenceExpressionAccess().getGroup_2_1_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new TypedElementReferenceExpression_ArgsAssignment_2_1_1_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class TypedElementReferenceExpression_CommaKeyword_2_1_1_0 extends KeywordToken  {
+	
+	public TypedElementReferenceExpression_CommaKeyword_2_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTypedElementReferenceExpressionAccess().getCommaKeyword_2_1_1_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new TypedElementReferenceExpression_Group_2_1_1(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new TypedElementReferenceExpression_ArgsAssignment_2_1_0(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// args+=Expression
+protected class TypedElementReferenceExpression_ArgsAssignment_2_1_1_1 extends AssignmentToken  {
+	
+	public TypedElementReferenceExpression_ArgsAssignment_2_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTypedElementReferenceExpressionAccess().getArgsAssignment_2_1_1_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Expression_AssignmentExpressionParserRuleCall(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("args",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getTypedElementReferenceExpressionAccess().getArgsExpressionParserRuleCall_2_1_1_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new TypedElementReferenceExpression_CommaKeyword_2_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+
+// ")"
+protected class TypedElementReferenceExpression_RightParenthesisKeyword_2_2 extends KeywordToken  {
+	
+	public TypedElementReferenceExpression_RightParenthesisKeyword_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTypedElementReferenceExpressionAccess().getRightParenthesisKeyword_2_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new TypedElementReferenceExpression_Group_2_1(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new TypedElementReferenceExpression_OperationCallAssignment_2_0(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
 
 /************ end Rule TypedElementReferenceExpression ****************/
 

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

@@ -1256,16 +1256,16 @@ ruleOperationDefinition returns [EObject current=null]
 ((
 (
 		{ 
-	        newCompositeNode(grammarAccess.getOperationDefinitionAccess().getParamsParameterParserRuleCall_4_0_0()); 
+	        newCompositeNode(grammarAccess.getOperationDefinitionAccess().getParametersParameterParserRuleCall_4_0_0()); 
 	    }
-		lv_params_4_0=ruleParameter		{
+		lv_parameters_4_0=ruleParameter		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getOperationDefinitionRule());
 	        }
        		add(
        			$current, 
-       			"params",
-        		lv_params_4_0, 
+       			"parameters",
+        		lv_parameters_4_0, 
         		"Parameter");
 	        afterParserOrEnumRuleCall();
 	    }
@@ -1278,16 +1278,16 @@ ruleOperationDefinition returns [EObject current=null]
 (
 (
 		{ 
-	        newCompositeNode(grammarAccess.getOperationDefinitionAccess().getParamsParameterParserRuleCall_4_1_1_0()); 
+	        newCompositeNode(grammarAccess.getOperationDefinitionAccess().getParametersParameterParserRuleCall_4_1_1_0()); 
 	    }
-		lv_params_6_0=ruleParameter		{
+		lv_parameters_6_0=ruleParameter		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getOperationDefinitionRule());
 	        }
        		add(
        			$current, 
-       			"params",
-        		lv_params_6_0, 
+       			"parameters",
+        		lv_parameters_6_0, 
         		"Parameter");
 	        afterParserOrEnumRuleCall();
 	    }
@@ -3722,7 +3722,72 @@ ruleTypedElementReferenceExpression returns [EObject current=null]
 	}
 
 )
-))
+)(((
+(
+	'(' 
+ 
+
+)
+)=>
+(
+		lv_operationCall_2_0=	'(' 
+    {
+        newLeafNode(lv_operationCall_2_0, grammarAccess.getTypedElementReferenceExpressionAccess().getOperationCallLeftParenthesisKeyword_2_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTypedElementReferenceExpressionRule());
+	        }
+       		setWithLastConsumed($current, "operationCall", true, "(");
+	    }
+
+)
+)((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsExpressionParserRuleCall_2_1_0_0()); 
+	    }
+		lv_args_3_0=ruleExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTypedElementReferenceExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"args",
+        		lv_args_3_0, 
+        		"Expression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getTypedElementReferenceExpressionAccess().getCommaKeyword_2_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTypedElementReferenceExpressionAccess().getArgsExpressionParserRuleCall_2_1_1_1_0()); 
+	    }
+		lv_args_5_0=ruleExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTypedElementReferenceExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"args",
+        		lv_args_5_0, 
+        		"Expression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6=')' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getTypedElementReferenceExpressionAccess().getRightParenthesisKeyword_2_2());
+    }
+)?)
 ;
 
 

+ 52 - 52
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSTextLexer.java

@@ -1602,10 +1602,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_BOOL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4417:11: ( ( 'true' | 'false' | 'yes' | 'no' ) )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4417:13: ( 'true' | 'false' | 'yes' | 'no' )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4482:11: ( ( 'true' | 'false' | 'yes' | 'no' ) )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4482:13: ( 'true' | 'false' | 'yes' | 'no' )
             {
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4417:13: ( 'true' | 'false' | 'yes' | 'no' )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4482:13: ( 'true' | 'false' | 'yes' | 'no' )
             int alt1=4;
             switch ( input.LA(1) ) {
             case 't':
@@ -1637,7 +1637,7 @@ public class InternalSTextLexer extends Lexer {
 
             switch (alt1) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4417:14: 'true'
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4482:14: 'true'
                     {
                     match("true"); 
 
@@ -1645,7 +1645,7 @@ public class InternalSTextLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4417:21: 'false'
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4482:21: 'false'
                     {
                     match("false"); 
 
@@ -1653,7 +1653,7 @@ public class InternalSTextLexer extends Lexer {
                     }
                     break;
                 case 3 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4417:29: 'yes'
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4482:29: 'yes'
                     {
                     match("yes"); 
 
@@ -1661,7 +1661,7 @@ public class InternalSTextLexer extends Lexer {
                     }
                     break;
                 case 4 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4417:35: 'no'
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4482:35: 'no'
                     {
                     match("no"); 
 
@@ -1687,8 +1687,8 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4419:10: ( '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4419:12: '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4484:10: ( '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4484:12: '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
             {
             match('0'); 
             if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
@@ -1700,7 +1700,7 @@ public class InternalSTextLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4419:26: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4484:26: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
             int cnt2=0;
             loop2:
             do {
@@ -1754,13 +1754,13 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_FLOAT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4421:12: ( RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )? )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4421:14: RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )?
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4486:12: ( RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )? )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4486:14: RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )?
             {
             mRULE_INT(); 
             match('.'); 
             mRULE_INT(); 
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4421:36: ( 'e' ( '-' | '+' ) RULE_INT )?
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4486:36: ( 'e' ( '-' | '+' ) RULE_INT )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1769,7 +1769,7 @@ public class InternalSTextLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4421:37: 'e' ( '-' | '+' ) RULE_INT
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4486:37: 'e' ( '-' | '+' ) RULE_INT
                     {
                     match('e'); 
                     if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
@@ -1788,7 +1788,7 @@ public class InternalSTextLexer extends Lexer {
 
             }
 
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4421:62: ( 'f' | 'F' | 'd' | 'D' )?
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4486:62: ( 'f' | 'F' | 'd' | 'D' )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -1830,10 +1830,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4423:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4423:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4488:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4488:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4423:11: ( '^' )?
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4488:11: ( '^' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -1842,7 +1842,7 @@ public class InternalSTextLexer extends Lexer {
             }
             switch (alt5) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4423:11: '^'
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4488:11: '^'
                     {
                     match('^'); 
 
@@ -1860,7 +1860,7 @@ public class InternalSTextLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4423:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4488:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop6:
             do {
                 int alt6=2;
@@ -1909,10 +1909,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4425:10: ( ( '0' .. '9' )+ )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4425:12: ( '0' .. '9' )+
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4490:10: ( ( '0' .. '9' )+ )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4490:12: ( '0' .. '9' )+
             {
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4425:12: ( '0' .. '9' )+
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4490:12: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -1926,7 +1926,7 @@ public class InternalSTextLexer extends Lexer {
 
                 switch (alt7) {
             	case 1 :
-            	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4425:13: '0' .. '9'
+            	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4490:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -1958,10 +1958,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             {
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1979,10 +1979,10 @@ public class InternalSTextLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
                     {
                     match('\"'); 
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop8:
                     do {
                         int alt8=3;
@@ -1998,7 +1998,7 @@ public class InternalSTextLexer extends Lexer {
 
                         switch (alt8) {
                     	case 1 :
-                    	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+                    	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                     	    {
                     	    match('\\'); 
                     	    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@@ -2014,7 +2014,7 @@ public class InternalSTextLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:66: ~ ( ( '\\\\' | '\"' ) )
+                    	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:66: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2039,10 +2039,10 @@ public class InternalSTextLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
                     {
                     match('\''); 
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop9:
                     do {
                         int alt9=3;
@@ -2058,7 +2058,7 @@ public class InternalSTextLexer extends Lexer {
 
                         switch (alt9) {
                     	case 1 :
-                    	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+                    	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                     	    {
                     	    match('\\'); 
                     	    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@@ -2074,7 +2074,7 @@ public class InternalSTextLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4427:137: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4492:137: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2117,12 +2117,12 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4429:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4429:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4494:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4494:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4429:24: ( options {greedy=false; } : . )*
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4494:24: ( options {greedy=false; } : . )*
             loop11:
             do {
                 int alt11=2;
@@ -2147,7 +2147,7 @@ public class InternalSTextLexer extends Lexer {
 
                 switch (alt11) {
             	case 1 :
-            	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4429:52: .
+            	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4494:52: .
             	    {
             	    matchAny(); 
 
@@ -2177,12 +2177,12 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4431:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4431:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4496:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4496:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4431:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4496:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop12:
             do {
                 int alt12=2;
@@ -2195,7 +2195,7 @@ public class InternalSTextLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4431:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4496:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2215,7 +2215,7 @@ public class InternalSTextLexer extends Lexer {
                 }
             } while (true);
 
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4431:40: ( ( '\\r' )? '\\n' )?
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4496:40: ( ( '\\r' )? '\\n' )?
             int alt14=2;
             int LA14_0 = input.LA(1);
 
@@ -2224,9 +2224,9 @@ public class InternalSTextLexer extends Lexer {
             }
             switch (alt14) {
                 case 1 :
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4431:41: ( '\\r' )? '\\n'
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4496:41: ( '\\r' )? '\\n'
                     {
-                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4431:41: ( '\\r' )?
+                    // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4496:41: ( '\\r' )?
                     int alt13=2;
                     int LA13_0 = input.LA(1);
 
@@ -2235,7 +2235,7 @@ public class InternalSTextLexer extends Lexer {
                     }
                     switch (alt13) {
                         case 1 :
-                            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4431:41: '\\r'
+                            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4496:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2267,10 +2267,10 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4433:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4433:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4498:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4498:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4433:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4498:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt15=0;
             loop15:
             do {
@@ -2324,8 +2324,8 @@ public class InternalSTextLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4435:16: ( . )
-            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4435:18: .
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4500:16: ( . )
+            // ../org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSText.g:4500:18: .
             {
             matchAny(); 
 

File diff suppressed because it is too large
+ 719 - 509
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/parser/antlr/internal/InternalSTextParser.java


+ 65 - 18
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/services/STextGrammarAccess.java

@@ -722,12 +722,12 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
 		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
 		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
-		private final Assignment cParamsAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
-		private final RuleCall cParamsParameterParserRuleCall_4_0_0 = (RuleCall)cParamsAssignment_4_0.eContents().get(0);
+		private final Assignment cParametersAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
+		private final RuleCall cParametersParameterParserRuleCall_4_0_0 = (RuleCall)cParametersAssignment_4_0.eContents().get(0);
 		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
 		private final Keyword cCommaKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
-		private final Assignment cParamsAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
-		private final RuleCall cParamsParameterParserRuleCall_4_1_1_0 = (RuleCall)cParamsAssignment_4_1_1.eContents().get(0);
+		private final Assignment cParametersAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+		private final RuleCall cParametersParameterParserRuleCall_4_1_1_0 = (RuleCall)cParametersAssignment_4_1_1.eContents().get(0);
 		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
 		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
 		private final Keyword cColonKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
@@ -736,11 +736,11 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final RuleCall cTypeTypeFQNParserRuleCall_6_1_0_1 = (RuleCall)cTypeTypeCrossReference_6_1_0.eContents().get(1);
 		
 		//OperationDefinition:
-		//	{OperationDefinition} "operation" name=ID "(" (params+=Parameter ("," params+=Parameter)*)? ")" (":"
+		//	{OperationDefinition} "operation" name=ID "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" (":"
 		//	type=[types::Type|FQN])?;
 		public ParserRule getRule() { return rule; }
 
-		//{OperationDefinition} "operation" name=ID "(" (params+=Parameter ("," params+=Parameter)*)? ")" (":"
+		//{OperationDefinition} "operation" name=ID "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" (":"
 		//type=[types::Type|FQN])?
 		public Group getGroup() { return cGroup; }
 
@@ -759,26 +759,26 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		//"("
 		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
 
-		//(params+=Parameter ("," params+=Parameter)*)?
+		//(parameters+=Parameter ("," parameters+=Parameter)*)?
 		public Group getGroup_4() { return cGroup_4; }
 
-		//params+=Parameter
-		public Assignment getParamsAssignment_4_0() { return cParamsAssignment_4_0; }
+		//parameters+=Parameter
+		public Assignment getParametersAssignment_4_0() { return cParametersAssignment_4_0; }
 
 		//Parameter
-		public RuleCall getParamsParameterParserRuleCall_4_0_0() { return cParamsParameterParserRuleCall_4_0_0; }
+		public RuleCall getParametersParameterParserRuleCall_4_0_0() { return cParametersParameterParserRuleCall_4_0_0; }
 
-		//("," params+=Parameter)*
+		//("," parameters+=Parameter)*
 		public Group getGroup_4_1() { return cGroup_4_1; }
 
 		//","
 		public Keyword getCommaKeyword_4_1_0() { return cCommaKeyword_4_1_0; }
 
-		//params+=Parameter
-		public Assignment getParamsAssignment_4_1_1() { return cParamsAssignment_4_1_1; }
+		//parameters+=Parameter
+		public Assignment getParametersAssignment_4_1_1() { return cParametersAssignment_4_1_1; }
 
 		//Parameter
-		public RuleCall getParamsParameterParserRuleCall_4_1_1_0() { return cParamsParameterParserRuleCall_4_1_1_0; }
+		public RuleCall getParametersParameterParserRuleCall_4_1_1_0() { return cParametersParameterParserRuleCall_4_1_1_0; }
 
 		//")"
 		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
@@ -2272,12 +2272,25 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 		private final Assignment cReferenceAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final CrossReference cReferenceNamedElementCrossReference_1_0 = (CrossReference)cReferenceAssignment_1.eContents().get(0);
 		private final RuleCall cReferenceNamedElementIDTerminalRuleCall_1_0_1 = (RuleCall)cReferenceNamedElementCrossReference_1_0.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Assignment cOperationCallAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
+		private final Keyword cOperationCallLeftParenthesisKeyword_2_0_0 = (Keyword)cOperationCallAssignment_2_0.eContents().get(0);
+		private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1);
+		private final Assignment cArgsAssignment_2_1_0 = (Assignment)cGroup_2_1.eContents().get(0);
+		private final RuleCall cArgsExpressionParserRuleCall_2_1_0_0 = (RuleCall)cArgsAssignment_2_1_0.eContents().get(0);
+		private final Group cGroup_2_1_1 = (Group)cGroup_2_1.eContents().get(1);
+		private final Keyword cCommaKeyword_2_1_1_0 = (Keyword)cGroup_2_1_1.eContents().get(0);
+		private final Assignment cArgsAssignment_2_1_1_1 = (Assignment)cGroup_2_1_1.eContents().get(1);
+		private final RuleCall cArgsExpressionParserRuleCall_2_1_1_1_0 = (RuleCall)cArgsAssignment_2_1_1_1.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
 		
 		//TypedElementReferenceExpression returns Expression:
-		//	{TypedElementReferenceExpression} reference=[base::NamedElement];
+		//	{TypedElementReferenceExpression} reference=[base::NamedElement] (=> operationCall?="(" (args+=Expression (","
+		//	args+=Expression)*)? ")")?;
 		public ParserRule getRule() { return rule; }
 
-		//{TypedElementReferenceExpression} reference=[base::NamedElement]
+		//{TypedElementReferenceExpression} reference=[base::NamedElement] (=> operationCall?="(" (args+=Expression (","
+		//args+=Expression)*)? ")")?
 		public Group getGroup() { return cGroup; }
 
 		//{TypedElementReferenceExpression}
@@ -2291,6 +2304,39 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 
 		//ID
 		public RuleCall getReferenceNamedElementIDTerminalRuleCall_1_0_1() { return cReferenceNamedElementIDTerminalRuleCall_1_0_1; }
+
+		//(=> operationCall?="(" (args+=Expression ("," args+=Expression)*)? ")")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//=> operationCall?="("
+		public Assignment getOperationCallAssignment_2_0() { return cOperationCallAssignment_2_0; }
+
+		//"("
+		public Keyword getOperationCallLeftParenthesisKeyword_2_0_0() { return cOperationCallLeftParenthesisKeyword_2_0_0; }
+
+		//(args+=Expression ("," args+=Expression)*)?
+		public Group getGroup_2_1() { return cGroup_2_1; }
+
+		//args+=Expression
+		public Assignment getArgsAssignment_2_1_0() { return cArgsAssignment_2_1_0; }
+
+		//Expression
+		public RuleCall getArgsExpressionParserRuleCall_2_1_0_0() { return cArgsExpressionParserRuleCall_2_1_0_0; }
+
+		//("," args+=Expression)*
+		public Group getGroup_2_1_1() { return cGroup_2_1_1; }
+
+		//","
+		public Keyword getCommaKeyword_2_1_1_0() { return cCommaKeyword_2_1_1_0; }
+
+		//args+=Expression
+		public Assignment getArgsAssignment_2_1_1_1() { return cArgsAssignment_2_1_1_1; }
+
+		//Expression
+		public RuleCall getArgsExpressionParserRuleCall_2_1_1_1_0() { return cArgsExpressionParserRuleCall_2_1_1_1_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_2_2() { return cRightParenthesisKeyword_2_2; }
 	}
 
 	public class EventValueReferenceExpressionElements extends AbstractParserRuleElementFinder {
@@ -3304,7 +3350,7 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//OperationDefinition:
-	//	{OperationDefinition} "operation" name=ID "(" (params+=Parameter ("," params+=Parameter)*)? ")" (":"
+	//	{OperationDefinition} "operation" name=ID "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" (":"
 	//	type=[types::Type|FQN])?;
 	public OperationDefinitionElements getOperationDefinitionAccess() {
 		return (pOperationDefinition != null) ? pOperationDefinition : (pOperationDefinition = new OperationDefinitionElements());
@@ -3752,7 +3798,8 @@ public class STextGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//TypedElementReferenceExpression returns Expression:
-	//	{TypedElementReferenceExpression} reference=[base::NamedElement];
+	//	{TypedElementReferenceExpression} reference=[base::NamedElement] (=> operationCall?="(" (args+=Expression (","
+	//	args+=Expression)*)? ")")?;
 	public TypedElementReferenceExpressionElements getTypedElementReferenceExpressionAccess() {
 		return (pTypedElementReferenceExpression != null) ? pTypedElementReferenceExpression : (pTypedElementReferenceExpression = new TypedElementReferenceExpressionElements());
 	}

+ 0 - 25
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/OperationDefinition.java

@@ -5,10 +5,7 @@
  */
 package org.yakindu.sct.model.stext.stext;
 
-import org.eclipse.emf.common.util.EList;
-
 import org.yakindu.base.types.Operation;
-import org.yakindu.base.types.Parameter;
 
 import org.yakindu.sct.model.sgraph.Declaration;
 
@@ -17,12 +14,6 @@ import org.yakindu.sct.model.sgraph.Declaration;
  * A representation of the model object '<em><b>Operation Definition</b></em>'.
  * <!-- end-user-doc -->
  *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.stext.stext.OperationDefinition#getParams <em>Params</em>}</li>
- * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getOperationDefinition()
  * @model
@@ -30,20 +21,4 @@ import org.yakindu.sct.model.sgraph.Declaration;
  */
 public interface OperationDefinition extends Declaration, Operation
 {
-  /**
-   * Returns the value of the '<em><b>Params</b></em>' containment reference list.
-   * The list contents are of type {@link org.yakindu.base.types.Parameter}.
-   * <!-- begin-user-doc -->
-   * <p>
-   * If the meaning of the '<em>Params</em>' containment reference list isn't clear,
-   * there really should be more of a description here...
-   * </p>
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Params</em>' containment reference list.
-   * @see org.yakindu.sct.model.stext.stext.StextPackage#getOperationDefinition_Params()
-   * @model containment="true"
-   * @generated
-   */
-  EList<Parameter> getParams();
-
 } // OperationDefinition

+ 58 - 30
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/StextPackage.java

@@ -653,15 +653,6 @@ public interface StextPackage extends EPackage
    */
   int OPERATION_DEFINITION__PARAMETERS = SGraphPackage.DECLARATION_FEATURE_COUNT + 2;
 
-  /**
-   * The feature id for the '<em><b>Params</b></em>' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int OPERATION_DEFINITION__PARAMS = SGraphPackage.DECLARATION_FEATURE_COUNT + 3;
-
   /**
    * The number of structural features of the '<em>Operation Definition</em>' class.
    * <!-- begin-user-doc -->
@@ -669,7 +660,7 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int OPERATION_DEFINITION_FEATURE_COUNT = SGraphPackage.DECLARATION_FEATURE_COUNT + 4;
+  int OPERATION_DEFINITION_FEATURE_COUNT = SGraphPackage.DECLARATION_FEATURE_COUNT + 3;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.LocalReactionImpl <em>Local Reaction</em>}' class.
@@ -2092,6 +2083,24 @@ public interface StextPackage extends EPackage
    */
   int TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE = EXPRESSION_FEATURE_COUNT + 0;
 
+  /**
+   * The feature id for the '<em><b>Operation Call</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL = EXPRESSION_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Args</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS = EXPRESSION_FEATURE_COUNT + 2;
+
   /**
    * The number of structural features of the '<em>Typed Element Reference Expression</em>' class.
    * <!-- begin-user-doc -->
@@ -2099,7 +2108,7 @@ public interface StextPackage extends EPackage
    * @generated
    * @ordered
    */
-  int TYPED_ELEMENT_REFERENCE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
+  int TYPED_ELEMENT_REFERENCE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3;
 
   /**
    * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.EventValueReferenceExpressionImpl <em>Event Value Reference Expression</em>}' class.
@@ -2541,17 +2550,6 @@ public interface StextPackage extends EPackage
    */
   EClass getOperationDefinition();
 
-  /**
-   * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.stext.stext.OperationDefinition#getParams <em>Params</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference list '<em>Params</em>'.
-   * @see org.yakindu.sct.model.stext.stext.OperationDefinition#getParams()
-   * @see #getOperationDefinition()
-   * @generated
-   */
-  EReference getOperationDefinition_Params();
-
   /**
    * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.LocalReaction <em>Local Reaction</em>}'.
    * <!-- begin-user-doc -->
@@ -3608,6 +3606,28 @@ public interface StextPackage extends EPackage
    */
   EReference getTypedElementReferenceExpression_Reference();
 
+  /**
+   * Returns the meta object for the attribute '{@link org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression#isOperationCall <em>Operation Call</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Operation Call</em>'.
+   * @see org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression#isOperationCall()
+   * @see #getTypedElementReferenceExpression()
+   * @generated
+   */
+  EAttribute getTypedElementReferenceExpression_OperationCall();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression#getArgs <em>Args</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Args</em>'.
+   * @see org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression#getArgs()
+   * @see #getTypedElementReferenceExpression()
+   * @generated
+   */
+  EReference getTypedElementReferenceExpression_Args();
+
   /**
    * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.EventValueReferenceExpression <em>Event Value Reference Expression</em>}'.
    * <!-- begin-user-doc -->
@@ -4017,14 +4037,6 @@ public interface StextPackage extends EPackage
      */
     EClass OPERATION_DEFINITION = eINSTANCE.getOperationDefinition();
 
-    /**
-     * The meta object literal for the '<em><b>Params</b></em>' containment reference list feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference OPERATION_DEFINITION__PARAMS = eINSTANCE.getOperationDefinition_Params();
-
     /**
      * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.LocalReactionImpl <em>Local Reaction</em>}' class.
      * <!-- begin-user-doc -->
@@ -4913,6 +4925,22 @@ public interface StextPackage extends EPackage
      */
     EReference TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE = eINSTANCE.getTypedElementReferenceExpression_Reference();
 
+    /**
+     * The meta object literal for the '<em><b>Operation Call</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL = eINSTANCE.getTypedElementReferenceExpression_OperationCall();
+
+    /**
+     * The meta object literal for the '<em><b>Args</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS = eINSTANCE.getTypedElementReferenceExpression_Args();
+
     /**
      * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.EventValueReferenceExpressionImpl <em>Event Value Reference Expression</em>}' class.
      * <!-- begin-user-doc -->

+ 46 - 0
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/TypedElementReferenceExpression.java

@@ -5,6 +5,8 @@
  */
 package org.yakindu.sct.model.stext.stext;
 
+import org.eclipse.emf.common.util.EList;
+
 import org.yakindu.base.base.NamedElement;
 
 /**
@@ -16,6 +18,8 @@ import org.yakindu.base.base.NamedElement;
  * The following features are supported:
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression#getReference <em>Reference</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression#isOperationCall <em>Operation Call</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression#getArgs <em>Args</em>}</li>
  * </ul>
  * </p>
  *
@@ -51,4 +55,46 @@ public interface TypedElementReferenceExpression extends Expression
    */
   void setReference(NamedElement value);
 
+  /**
+   * Returns the value of the '<em><b>Operation Call</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Operation Call</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Operation Call</em>' attribute.
+   * @see #setOperationCall(boolean)
+   * @see org.yakindu.sct.model.stext.stext.StextPackage#getTypedElementReferenceExpression_OperationCall()
+   * @model
+   * @generated
+   */
+  boolean isOperationCall();
+
+  /**
+   * Sets the value of the '{@link org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression#isOperationCall <em>Operation Call</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Operation Call</em>' attribute.
+   * @see #isOperationCall()
+   * @generated
+   */
+  void setOperationCall(boolean value);
+
+  /**
+   * Returns the value of the '<em><b>Args</b></em>' containment reference list.
+   * The list contents are of type {@link org.yakindu.sct.model.stext.stext.Expression}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Args</em>' containment reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Args</em>' containment reference list.
+   * @see org.yakindu.sct.model.stext.stext.StextPackage#getTypedElementReferenceExpression_Args()
+   * @model containment="true"
+   * @generated
+   */
+  EList<Expression> getArgs();
+
 } // TypedElementReferenceExpression

+ 0 - 39
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/OperationDefinitionImpl.java

@@ -17,7 +17,6 @@ import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.util.InternalEList;
@@ -44,7 +43,6 @@ import org.yakindu.sct.model.stext.stext.StextPackage;
  *   <li>{@link org.yakindu.sct.model.stext.stext.impl.OperationDefinitionImpl#getType <em>Type</em>}</li>
  *   <li>{@link org.yakindu.sct.model.stext.stext.impl.OperationDefinitionImpl#getOwningType <em>Owning Type</em>}</li>
  *   <li>{@link org.yakindu.sct.model.stext.stext.impl.OperationDefinitionImpl#getParameters <em>Parameters</em>}</li>
- *   <li>{@link org.yakindu.sct.model.stext.stext.impl.OperationDefinitionImpl#getParams <em>Params</em>}</li>
  * </ul>
  * </p>
  *
@@ -72,16 +70,6 @@ public class OperationDefinitionImpl extends DeclarationImpl implements Operatio
    */
   protected EList<Parameter> parameters;
 
-  /**
-   * The cached value of the '{@link #getParams() <em>Params</em>}' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getParams()
-   * @generated
-   * @ordered
-   */
-  protected EList<Parameter> params;
-
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -205,20 +193,6 @@ public class OperationDefinitionImpl extends DeclarationImpl implements Operatio
     return parameters;
   }
 
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public EList<Parameter> getParams()
-  {
-    if (params == null)
-    {
-      params = new EObjectContainmentEList<Parameter>(Parameter.class, this, StextPackage.OPERATION_DEFINITION__PARAMS);
-    }
-    return params;
-  }
-
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -254,8 +228,6 @@ public class OperationDefinitionImpl extends DeclarationImpl implements Operatio
         return basicSetOwningType(null, msgs);
       case StextPackage.OPERATION_DEFINITION__PARAMETERS:
         return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs);
-      case StextPackage.OPERATION_DEFINITION__PARAMS:
-        return ((InternalEList<?>)getParams()).basicRemove(otherEnd, msgs);
     }
     return super.eInverseRemove(otherEnd, featureID, msgs);
   }
@@ -293,8 +265,6 @@ public class OperationDefinitionImpl extends DeclarationImpl implements Operatio
         return getOwningType();
       case StextPackage.OPERATION_DEFINITION__PARAMETERS:
         return getParameters();
-      case StextPackage.OPERATION_DEFINITION__PARAMS:
-        return getParams();
     }
     return super.eGet(featureID, resolve, coreType);
   }
@@ -320,10 +290,6 @@ public class OperationDefinitionImpl extends DeclarationImpl implements Operatio
         getParameters().clear();
         getParameters().addAll((Collection<? extends Parameter>)newValue);
         return;
-      case StextPackage.OPERATION_DEFINITION__PARAMS:
-        getParams().clear();
-        getParams().addAll((Collection<? extends Parameter>)newValue);
-        return;
     }
     super.eSet(featureID, newValue);
   }
@@ -347,9 +313,6 @@ public class OperationDefinitionImpl extends DeclarationImpl implements Operatio
       case StextPackage.OPERATION_DEFINITION__PARAMETERS:
         getParameters().clear();
         return;
-      case StextPackage.OPERATION_DEFINITION__PARAMS:
-        getParams().clear();
-        return;
     }
     super.eUnset(featureID);
   }
@@ -370,8 +333,6 @@ public class OperationDefinitionImpl extends DeclarationImpl implements Operatio
         return getOwningType() != null;
       case StextPackage.OPERATION_DEFINITION__PARAMETERS:
         return parameters != null && !parameters.isEmpty();
-      case StextPackage.OPERATION_DEFINITION__PARAMS:
-        return params != null && !params.isEmpty();
     }
     return super.eIsSet(featureID);
   }

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

@@ -937,16 +937,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     return operationDefinitionEClass;
   }
 
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public EReference getOperationDefinition_Params()
-  {
-    return (EReference)operationDefinitionEClass.getEStructuralFeatures().get(0);
-  }
-
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -1947,6 +1937,26 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     return (EReference)typedElementReferenceExpressionEClass.getEStructuralFeatures().get(0);
   }
 
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getTypedElementReferenceExpression_OperationCall()
+  {
+    return (EAttribute)typedElementReferenceExpressionEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getTypedElementReferenceExpression_Args()
+  {
+    return (EReference)typedElementReferenceExpressionEClass.getEStructuralFeatures().get(2);
+  }
+
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -2149,7 +2159,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     createEReference(variableDefinitionEClass, VARIABLE_DEFINITION__INITIAL_VALUE);
 
     operationDefinitionEClass = createEClass(OPERATION_DEFINITION);
-    createEReference(operationDefinitionEClass, OPERATION_DEFINITION__PARAMS);
 
     localReactionEClass = createEClass(LOCAL_REACTION);
     createEReference(localReactionEClass, LOCAL_REACTION__PROPERTIES);
@@ -2294,6 +2303,8 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
 
     typedElementReferenceExpressionEClass = createEClass(TYPED_ELEMENT_REFERENCE_EXPRESSION);
     createEReference(typedElementReferenceExpressionEClass, TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE);
+    createEAttribute(typedElementReferenceExpressionEClass, TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL);
+    createEReference(typedElementReferenceExpressionEClass, TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS);
 
     eventValueReferenceExpressionEClass = createEClass(EVENT_VALUE_REFERENCE_EXPRESSION);
     createEReference(eventValueReferenceExpressionEClass, EVENT_VALUE_REFERENCE_EXPRESSION__VALUE);
@@ -2448,7 +2459,6 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
     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(operationDefinitionEClass, OperationDefinition.class, "OperationDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getOperationDefinition_Params(), theTypesPackage.getParameter(), null, "params", null, 0, -1, OperationDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
     initEClass(localReactionEClass, LocalReaction.class, "LocalReaction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
     initEReference(getLocalReaction_Properties(), this.getReactionProperties(), null, "properties", null, 0, 1, LocalReaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2593,6 +2603,8 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage
 
     initEClass(typedElementReferenceExpressionEClass, TypedElementReferenceExpression.class, "TypedElementReferenceExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
     initEReference(getTypedElementReferenceExpression_Reference(), theBasePackage.getNamedElement(), null, "reference", null, 0, 1, TypedElementReferenceExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getTypedElementReferenceExpression_OperationCall(), ecorePackage.getEBoolean(), "operationCall", null, 0, 1, TypedElementReferenceExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getTypedElementReferenceExpression_Args(), this.getExpression(), null, "args", null, 0, -1, TypedElementReferenceExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
     initEClass(eventValueReferenceExpressionEClass, EventValueReferenceExpression.class, "EventValueReferenceExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
     initEReference(getEventValueReferenceExpression_Value(), this.getExpression(), null, "value", null, 0, 1, EventValueReferenceExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+ 133 - 0
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/TypedElementReferenceExpressionImpl.java

@@ -5,15 +5,24 @@
  */
 package org.yakindu.sct.model.stext.stext.impl;
 
+import java.util.Collection;
+
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
 import org.yakindu.base.base.NamedElement;
 
+import org.yakindu.sct.model.stext.stext.Expression;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 import org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression;
 
@@ -25,6 +34,8 @@ import org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression;
  * The following features are implemented:
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.impl.TypedElementReferenceExpressionImpl#getReference <em>Reference</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.impl.TypedElementReferenceExpressionImpl#isOperationCall <em>Operation Call</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.impl.TypedElementReferenceExpressionImpl#getArgs <em>Args</em>}</li>
  * </ul>
  * </p>
  *
@@ -42,6 +53,36 @@ public class TypedElementReferenceExpressionImpl extends ExpressionImpl implemen
    */
   protected NamedElement reference;
 
+  /**
+   * The default value of the '{@link #isOperationCall() <em>Operation Call</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #isOperationCall()
+   * @generated
+   * @ordered
+   */
+  protected static final boolean OPERATION_CALL_EDEFAULT = false;
+
+  /**
+   * The cached value of the '{@link #isOperationCall() <em>Operation Call</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #isOperationCall()
+   * @generated
+   * @ordered
+   */
+  protected boolean operationCall = OPERATION_CALL_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getArgs() <em>Args</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getArgs()
+   * @generated
+   * @ordered
+   */
+  protected EList<Expression> args;
+
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -106,6 +147,59 @@ public class TypedElementReferenceExpressionImpl extends ExpressionImpl implemen
       eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE, oldReference, reference));
   }
 
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public boolean isOperationCall()
+  {
+    return operationCall;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setOperationCall(boolean newOperationCall)
+  {
+    boolean oldOperationCall = operationCall;
+    operationCall = newOperationCall;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL, oldOperationCall, operationCall));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Expression> getArgs()
+  {
+    if (args == null)
+    {
+      args = new EObjectContainmentEList<Expression>(Expression.class, this, StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS);
+    }
+    return args;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS:
+        return ((InternalEList<?>)getArgs()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -119,6 +213,10 @@ public class TypedElementReferenceExpressionImpl extends ExpressionImpl implemen
       case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE:
         if (resolve) return getReference();
         return basicGetReference();
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL:
+        return isOperationCall();
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS:
+        return getArgs();
     }
     return super.eGet(featureID, resolve, coreType);
   }
@@ -128,6 +226,7 @@ public class TypedElementReferenceExpressionImpl extends ExpressionImpl implemen
    * <!-- end-user-doc -->
    * @generated
    */
+  @SuppressWarnings("unchecked")
   @Override
   public void eSet(int featureID, Object newValue)
   {
@@ -136,6 +235,13 @@ public class TypedElementReferenceExpressionImpl extends ExpressionImpl implemen
       case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE:
         setReference((NamedElement)newValue);
         return;
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL:
+        setOperationCall((Boolean)newValue);
+        return;
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS:
+        getArgs().clear();
+        getArgs().addAll((Collection<? extends Expression>)newValue);
+        return;
     }
     super.eSet(featureID, newValue);
   }
@@ -153,6 +259,12 @@ public class TypedElementReferenceExpressionImpl extends ExpressionImpl implemen
       case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE:
         setReference((NamedElement)null);
         return;
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL:
+        setOperationCall(OPERATION_CALL_EDEFAULT);
+        return;
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS:
+        getArgs().clear();
+        return;
     }
     super.eUnset(featureID);
   }
@@ -169,8 +281,29 @@ public class TypedElementReferenceExpressionImpl extends ExpressionImpl implemen
     {
       case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE:
         return reference != null;
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__OPERATION_CALL:
+        return operationCall != OPERATION_CALL_EDEFAULT;
+      case StextPackage.TYPED_ELEMENT_REFERENCE_EXPRESSION__ARGS:
+        return args != null && !args.isEmpty();
     }
     return super.eIsSet(featureID);
   }
 
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (operationCall: ");
+    result.append(operationCall);
+    result.append(')');
+    return result.toString();
+  }
+
 } //TypedElementReferenceExpressionImpl

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

@@ -101,7 +101,7 @@ VariableDefinition:
 OperationDeclaration returns sgraph::Declaration: OperationDefinition;
 OperationFeature returns types::Operation: OperationDefinition;
 OperationDefinition:
-	{OperationDefinition} 'operation' name=ID '(' (params+=Parameter (',' params+=Parameter)*)? ')' (':' type=[types::Type|FQN])?;
+	{OperationDefinition} 'operation' name=ID '(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')' (':' type=[types::Type|FQN])?;
 
 Parameter returns types::Parameter:
 	name=ID ':' type=[types::Type|FQN]
@@ -264,17 +264,18 @@ PrimitiveValueExpression returns Expression:
 	{PrimitiveValueExpression} value=Literal;
 
 FeatureCall returns Expression:
-	 TypedElementReferenceExpression  ({FeatureCall.owner=current} '.' feature=[types::Feature]
-	 	 (	=>operationCall?='(' 
-				(
-				    (args+=Expression (',' args+=Expression)*)?
-				)? 
+	TypedElementReferenceExpression ({FeatureCall.owner=current} '.' feature=[types::Feature]
+		(	=>operationCall?='('
+				(args+=Expression (',' args+=Expression)*)?
 			')')?
 	 )*
 ;
 
 TypedElementReferenceExpression returns Expression:
-	{TypedElementReferenceExpression} reference=[base::NamedElement|ID]
+	{TypedElementReferenceExpression} reference=[base::NamedElement|ID] 
+		(	=>operationCall?='(' 
+				(args+=Expression (',' args+=Expression)*)?
+			')')?
 ;
 
 EventValueReferenceExpression returns Expression:

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

@@ -63,6 +63,7 @@ import de.itemis.xtext.utils.gmf.resource.InjectMembersResource;
  */
 public class STextJavaValidator extends AbstractSTextJavaValidator {
 
+	public static final String FEATURE_CALL_TO_SCOPE = "FEATURE_CALL_TO_SCOPE";
 	public static final String ONLY_ONE_INTERFACE = "Only one default/unnamed interface is allowed.";
 	public static final String IN_OUT_DECLARATIONS = "In/Out declarations are not allowed in internal scope.";
 	public static final String LOCAL_DECLARATIONS = "Local declarations are not allowed in interface scope.";
@@ -71,7 +72,7 @@ public class STextJavaValidator extends AbstractSTextJavaValidator {
 	private StaticTypeAnalyzer analyzer;
 
 	@Check(CheckType.FAST)
-	public void checkOperationArguments(final FeatureCall call) {
+	public void checkOperationArguments_FeatureCall(final FeatureCall call) {
 		if (call.getFeature() instanceof Operation) {
 			Operation operation = (Operation) call.getFeature();
 			EList<Parameter> parameters = operation.getParameters();
@@ -82,6 +83,43 @@ public class STextJavaValidator extends AbstractSTextJavaValidator {
 		}
 	}
 
+	@Check(CheckType.FAST)
+	public void checkOperationArguments_TypedElementReferenceExpression(
+			final TypedElementReferenceExpression call) {
+		if (call.getReference() instanceof Operation) {
+			Operation operation = (Operation) call.getReference();
+			EList<Parameter> parameters = operation.getParameters();
+			EList<Expression> args = call.getArgs();
+			if (parameters.size() != args.size()) {
+				error("Wrong number of arguments, expected " + parameters, null);
+			}
+		}
+	}
+
+	@Check(CheckType.FAST)
+	public void checkFeatureCall(FeatureCall call) {
+		if (call.eContainer() instanceof FeatureCall) {
+			return;
+		}
+		if (call.getFeature() instanceof Scope) {
+			error("A variable, event or operation is required",
+					StextPackage.Literals.FEATURE_CALL__FEATURE,
+					INSIGNIFICANT_INDEX, FEATURE_CALL_TO_SCOPE);
+		}
+	}
+
+	@Check(CheckType.FAST)
+	public void checkFeatureCall(TypedElementReferenceExpression call) {
+		if (call.eContainer() instanceof FeatureCall) {
+			return;
+		}
+		if (call.getReference() instanceof Scope) {
+			error("A variable, event or operation is required",
+					StextPackage.Literals.TYPED_ELEMENT_REFERENCE_EXPRESSION__REFERENCE,
+					INSIGNIFICANT_INDEX, FEATURE_CALL_TO_SCOPE);
+		}
+	}
+
 	@Check(CheckType.FAST)
 	public void checkReactionTrigger(ReactionTrigger reactionTrigger) {
 		for (EventSpec eventSpec : reactionTrigger.getTriggers()) {

+ 1 - 1
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/StaticTypeAnalyzer.xtend

@@ -198,7 +198,7 @@ class StaticTypeAnalyzer implements ITypeAnalyzer {
 	} 
 	
 	def dispatch inferType(FeatureCall featureCall){
-		return featureCall.feature.type
+		return featureCall.feature?.type
 	}
 	
 	def dispatch inferType(TypedElementReferenceExpression expression){

+ 1 - 1
plugins/org.yakindu.sct.model.stext/xtend-gen/org/yakindu/sct/model/stext/validation/StaticTypeAnalyzer.java

@@ -348,7 +348,7 @@ public class StaticTypeAnalyzer implements ITypeAnalyzer {
   
   protected Type _inferType(final FeatureCall featureCall) {
     Feature _feature = featureCall.getFeature();
-    Type _type = _feature.getType();
+    Type _type = _feature==null?(Type)null:_feature.getType();
     return _type;
   }
   

+ 3 - 1
test-plugins/org.yakindu.sct.model.stext.test/META-INF/MANIFEST.MF

@@ -8,5 +8,7 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.xtext.junit4;bundle-version="2.0.1",
  org.yakindu.sct.model.sgraph;bundle-version="1.0.0",
  org.yakindu.sct.model.stext;bundle-version="1.0.0",
- org.junit;bundle-version="4.8.2"
+ org.junit;bundle-version="4.8.2",
+ de.itemis.xtext.utils.jface;bundle-version="1.0.0",
+ org.yakindu.sct.model.sgraph.test;bundle-version="1.0.0"
 Export-Package: org.yakindu.sct.model.stext.test.util

+ 51 - 4
test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/STextJavaValidatorTest.java

@@ -13,6 +13,8 @@ package org.yakindu.sct.model.stext.test;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.stext.validation.STextJavaValidator.FEATURE_CALL_TO_SCOPE;
 import static org.yakindu.sct.model.stext.validation.STextJavaValidator.IN_OUT_DECLARATIONS;
 import static org.yakindu.sct.model.stext.validation.STextJavaValidator.LOCAL_DECLARATIONS;
 import static org.yakindu.sct.model.stext.validation.STextJavaValidator.ONLY_ONE_INTERFACE;
@@ -36,6 +38,8 @@ import org.yakindu.sct.model.stext.stext.Expression;
 import org.yakindu.sct.model.stext.stext.InterfaceScope;
 import org.yakindu.sct.model.stext.stext.InternalScope;
 import org.yakindu.sct.model.stext.stext.StatechartSpecification;
+import org.yakindu.sct.model.stext.stext.TransitionSpecification;
+import org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression;
 import org.yakindu.sct.model.stext.test.util.AbstractSTextTest;
 import org.yakindu.sct.model.stext.test.util.STextInjectorProvider;
 import org.yakindu.sct.model.stext.validation.STextJavaValidator;
@@ -72,18 +76,61 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
 	}
 
 	/**
-	 * @see STextJavaValidator#checkOperationArguments(org.yakindu.sct.model.stext.stext.FeatureCall)
+	 * @see STextJavaValidator#checkOperationArguments_FeatureCall(org.yakindu.sct.model.stext.stext.FeatureCall)
 	 */
 	@Test
-	@Ignore("Test error")
-	public void checkOperationArguments() {
-		Scope context = createContextScope("internal: operation myOperation(param1 : Integer, param2: Boolean)");
+	public void checkOperationArguments_FeatureCall() {
+		Scope context = (Scope) parseExpression(
+				"interface if : operation myOperation(param1 : integer, param2: boolean)",
+				null, InterfaceScope.class.getSimpleName());
+		Statechart sc = _createStatechart("myStatechart");
+		getResource().getContents().add(sc);
+		sc.getScopes().add(context);
+		EObject model = super.parseExpression("if.myOperation(5,true)",
+				context, Expression.class.getSimpleName());
+		AssertableDiagnostics validationResult = tester.validate(model);
+		validationResult.assertOK();
+	}
+
+	/**
+	 * @see STextJavaValidator#checkOperationArguments_TypedElementReferenceExpression(TypedElementReferenceExpression)
+	 */
+	@Test
+	public void checkOperationArguments_TypedElementReferenceExpression() {
+		Scope context = createContextScope("internal: operation myOperation(param1 : integer, param2: boolean)");
+		Statechart sc = _createStatechart("myStatechart");
+		getResource().getContents().add(sc);
+		sc.getScopes().add(context);
 		EObject model = super.parseExpression("myOperation(5,true)", context,
 				Expression.class.getSimpleName());
 		AssertableDiagnostics validationResult = tester.validate(model);
 		validationResult.assertOK();
 	}
 
+	@Test
+	public void checkFeatureCall() {
+		Scope context = (Scope) parseExpression(
+				"interface if : in event a : integer", null,
+				InterfaceScope.class.getSimpleName());
+		Statechart sc = _createStatechart("myStatechart");
+		getResource().getContents().add(sc);
+		sc.getScopes().add(context);
+		EObject model = super.parseExpression("if.a / raise if.a", context,
+				TransitionSpecification.class.getSimpleName());
+		AssertableDiagnostics validationResult = tester.validate(model);
+		validationResult.assertOK();
+
+		model = super.parseExpression("if / raise if.a", context,
+				TransitionSpecification.class.getSimpleName());
+		validationResult = tester.validate(model);
+		validationResult.assertError(FEATURE_CALL_TO_SCOPE);
+
+		model = super.parseExpression("if.a / raise if", context,
+				TransitionSpecification.class.getSimpleName());
+		validationResult = tester.validate(model);
+		validationResult.assertError(FEATURE_CALL_TO_SCOPE);
+	}
+
 	/**
 	 * 
 	 * @see STextJavaValidator#checkReactionTrigger(org.yakindu.sct.model.stext.stext.ReactionTrigger)

+ 22 - 2
test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/util/AbstractSTextTest.java

@@ -14,6 +14,7 @@ import java.io.StringReader;
 
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.xtext.ParserRule;
 import org.eclipse.xtext.XtextFactory;
 import org.eclipse.xtext.diagnostics.Severity;
@@ -23,10 +24,13 @@ import org.eclipse.xtext.parser.IParseResult;
 import org.eclipse.xtext.parser.IParser;
 import org.eclipse.xtext.resource.XtextResource;
 import org.eclipse.xtext.resource.impl.ListBasedDiagnosticConsumer;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Scope;
 
 import com.google.inject.Inject;
 
+import de.itemis.xtext.utils.jface.viewers.ContextElementAdapter;
+
 /**
  * 
  * @author andreas muelder - Initial contribution and API
@@ -38,9 +42,26 @@ public abstract class AbstractSTextTest {
 	private IParser parser;
 	@Inject
 	private ILinker linker;
-	@Inject
 	private XtextResource resource;
 
+	@Inject
+	protected void setResource(final XtextResource resource) {
+		this.resource = resource;
+		resource.eAdapters().add(
+				new ContextElementAdapter(
+						new ContextElementAdapter.IContextElementProvider() {
+							public EObject getContextObject() {
+								return (EObject) EcoreUtil.getObjectByType(
+										resource.getContents(),
+										SGraphPackage.Literals.STATECHART);
+							}
+						}));
+	}
+
+	protected XtextResource getResource() {
+		return resource;
+	}
+
 	protected EObject parseExpression(String expression, Scope context,
 			String ruleName) {
 		resource.setURI(URI.createPlatformPluginURI("path", true));
@@ -85,5 +106,4 @@ public abstract class AbstractSTextTest {
 	protected Scope createDefaultScope() {
 		return createContextScope("internal: in event abc : integer operation foo() var myInt : integer var myBool : boolean var myReal : real var myString : string");
 	}
-
 }