Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g')
-rw-r--r--plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g6227
1 files changed, 6227 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g
new file mode 100644
index 000000000..d446975ea
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g
@@ -0,0 +1,6227 @@
+/*
+* generated by Xtext
+*/
+grammar InternalRoom;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.etrice.core.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.etrice.core.parser.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.xtext.parsetree.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.xtext.conversion.ValueConverterException;
+import org.eclipse.etrice.core.services.RoomGrammarAccess;
+
+}
+
+@parser::members {
+
+ private RoomGrammarAccess grammarAccess;
+
+ public InternalRoomParser(TokenStream input, IAstFactory factory, RoomGrammarAccess grammarAccess) {
+ this(input);
+ this.factory = factory;
+ registerRules(grammarAccess.getGrammar());
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected InputStream getTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.tokens");
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "RoomModel";
+ }
+
+ @Override
+ protected RoomGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleRoomModel
+entryRuleRoomModel returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getRoomModelRule(), currentNode); }
+ iv_ruleRoomModel=ruleRoomModel
+ { $current=$iv_ruleRoomModel.current; }
+ EOF
+;
+
+// Rule RoomModel
+ruleRoomModel returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'RoomModel'
+ {
+ createLeafNode(grammarAccess.getRoomModelAccess().getRoomModelKeyword_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRoomModelAccess().getNameFQNParserRuleCall_1_0(), currentNode);
+ }
+ lv_name_1_0=ruleFQN {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRoomModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "FQN",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getRoomModelAccess().getLeftCurlyBracketKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRoomModelAccess().getImportsImportParserRuleCall_3_0(), currentNode);
+ }
+ lv_imports_3_0=ruleImport {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRoomModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "imports",
+ lv_imports_3_0,
+ "Import",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRoomModelAccess().getDataClassesDataClassParserRuleCall_4_0_0(), currentNode);
+ }
+ lv_dataClasses_4_0=ruleDataClass {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRoomModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "dataClasses",
+ lv_dataClasses_4_0,
+ "DataClass",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRoomModelAccess().getProtocolClassesProtocolClassParserRuleCall_4_1_0(), currentNode);
+ }
+ lv_protocolClasses_5_0=ruleProtocolClass {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRoomModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "protocolClasses",
+ lv_protocolClasses_5_0,
+ "ProtocolClass",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRoomModelAccess().getActorClassesActorClassParserRuleCall_4_2_0(), currentNode);
+ }
+ lv_actorClasses_6_0=ruleActorClass {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRoomModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "actorClasses",
+ lv_actorClasses_6_0,
+ "ActorClass",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRoomModelAccess().getSubSystemClassesSubSystemClassParserRuleCall_4_3_0(), currentNode);
+ }
+ lv_subSystemClasses_7_0=ruleSubSystemClass {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRoomModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "subSystemClasses",
+ lv_subSystemClasses_7_0,
+ "SubSystemClass",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRoomModelAccess().getSystemsLogicalSystemParserRuleCall_4_4_0(), currentNode);
+ }
+ lv_systems_8_0=ruleLogicalSystem {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRoomModelRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "systems",
+ lv_systems_8_0,
+ "LogicalSystem",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))+ '}'
+ {
+ createLeafNode(grammarAccess.getRoomModelAccess().getRightCurlyBracketKeyword_5(), null);
+ }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleStructureClass
+entryRuleStructureClass returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getStructureClassRule(), currentNode); }
+ iv_ruleStructureClass=ruleStructureClass
+ { $current=$iv_ruleStructureClass.current; }
+ EOF
+;
+
+// Rule StructureClass
+ruleStructureClass returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStructureClassAccess().getActorContainerClassParserRuleCall_0(), currentNode);
+ }
+ this_ActorContainerClass_0=ruleActorContainerClass
+ {
+ $current = $this_ActorContainerClass_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getStructureClassAccess().getLogicalSystemParserRuleCall_1(), currentNode);
+ }
+ this_LogicalSystem_1=ruleLogicalSystem
+ {
+ $current = $this_LogicalSystem_1.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleActorContainerClass
+entryRuleActorContainerClass returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getActorContainerClassRule(), currentNode); }
+ iv_ruleActorContainerClass=ruleActorContainerClass
+ { $current=$iv_ruleActorContainerClass.current; }
+ EOF
+;
+
+// Rule ActorContainerClass
+ruleActorContainerClass returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorContainerClassAccess().getActorClassParserRuleCall_0(), currentNode);
+ }
+ this_ActorClass_0=ruleActorClass
+ {
+ $current = $this_ActorClass_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorContainerClassAccess().getSubSystemClassParserRuleCall_1(), currentNode);
+ }
+ this_SubSystemClass_1=ruleSubSystemClass
+ {
+ $current = $this_SubSystemClass_1.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTypedID
+entryRuleTypedID returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTypedIDRule(), currentNode); }
+ iv_ruleTypedID=ruleTypedID
+ { $current=$iv_ruleTypedID.current; }
+ EOF
+;
+
+// Rule TypedID
+ruleTypedID returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ lv_name_0_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getTypedIDAccess().getNameIDTerminalRuleCall_0_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTypedIDRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) ':'
+ {
+ createLeafNode(grammarAccess.getTypedIDAccess().getColonKeyword_1(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTypedIDAccess().getTypeTypeParserRuleCall_2_0(), currentNode);
+ }
+ lv_type_2_0=ruleType {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTypedIDRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "type",
+ lv_type_2_0,
+ "Type",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleFreeTypedID
+entryRuleFreeTypedID returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getFreeTypedIDRule(), currentNode); }
+ iv_ruleFreeTypedID=ruleFreeTypedID
+ { $current=$iv_ruleFreeTypedID.current; }
+ EOF
+;
+
+// Rule FreeTypedID
+ruleFreeTypedID returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ lv_name_0_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getFreeTypedIDAccess().getNameIDTerminalRuleCall_0_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getFreeTypedIDRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) ':'
+ {
+ createLeafNode(grammarAccess.getFreeTypedIDAccess().getColonKeyword_1(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getFreeTypedIDAccess().getTypeFreeTypeParserRuleCall_2_0(), currentNode);
+ }
+ lv_type_2_0=ruleFreeType {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getFreeTypedIDRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "type",
+ lv_type_2_0,
+ "FreeType",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleType
+entryRuleType returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTypeRule(), currentNode); }
+ iv_ruleType=ruleType
+ { $current=$iv_ruleType.current; }
+ EOF
+;
+
+// Rule Type
+ruleType returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTypeAccess().getPrimPrimitiveTypeEnumRuleCall_0_0(), currentNode);
+ }
+ lv_prim_0_0=rulePrimitiveType {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTypeRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "prim",
+ lv_prim_0_0,
+ "PrimitiveType",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTypeRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getTypeAccess().getTypeDataClassCrossReference_1_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleFreeType
+entryRuleFreeType returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getFreeTypeRule(), currentNode); }
+ iv_ruleFreeType=ruleFreeType
+ { $current=$iv_ruleFreeType.current; }
+ EOF
+;
+
+// Rule FreeType
+ruleFreeType returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getFreeTypeAccess().getPrimPrimitiveTypeEnumRuleCall_0_0(), currentNode);
+ }
+ lv_prim_0_0=rulePrimitiveType {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getFreeTypeRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "prim",
+ lv_prim_0_0,
+ "PrimitiveType",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ lv_type_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getFreeTypeAccess().getTypeIDTerminalRuleCall_1_0(), "type");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getFreeTypeRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "type",
+ lv_type_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDataClass
+entryRuleDataClass returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getDataClassRule(), currentNode); }
+ iv_ruleDataClass=ruleDataClass
+ { $current=$iv_ruleDataClass.current; }
+ EOF
+;
+
+// Rule DataClass
+ruleDataClass returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'DataClass'
+ {
+ createLeafNode(grammarAccess.getDataClassAccess().getDataClassKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getDataClassAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getDataClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)( 'extends'
+ {
+ createLeafNode(grammarAccess.getDataClassAccess().getExtendsKeyword_2_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getDataClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getDataClassAccess().getBaseDataClassCrossReference_2_1_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '{'
+ {
+ createLeafNode(grammarAccess.getDataClassAccess().getLeftCurlyBracketKeyword_3(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getDataClassAccess().getImportsImportParserRuleCall_4_0(), currentNode);
+ }
+ lv_imports_5_0=ruleImport {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getDataClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "imports",
+ lv_imports_5_0,
+ "Import",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getDataClassAccess().getAttributesAttributeParserRuleCall_5_0(), currentNode);
+ }
+ lv_attributes_6_0=ruleAttribute {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getDataClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "attributes",
+ lv_attributes_6_0,
+ "Attribute",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getDataClassAccess().getOperationsOperationParserRuleCall_6_0(), currentNode);
+ }
+ lv_operations_7_0=ruleOperation {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getDataClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "operations",
+ lv_operations_7_0,
+ "Operation",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getDataClassAccess().getRightCurlyBracketKeyword_7(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAttribute
+entryRuleAttribute returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getAttributeRule(), currentNode); }
+ iv_ruleAttribute=ruleAttribute
+ { $current=$iv_ruleAttribute.current; }
+ EOF
+;
+
+// Rule Attribute
+ruleAttribute returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'Attribute'
+ {
+ createLeafNode(grammarAccess.getAttributeAccess().getAttributeKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getAttributeRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)( '['
+ {
+ createLeafNode(grammarAccess.getAttributeAccess().getLeftSquareBracketKeyword_2_0(), null);
+ }
+(
+(
+ lv_size_3_0=RULE_INT
+ {
+ createLeafNode(grammarAccess.getAttributeAccess().getSizeINTTerminalRuleCall_2_1_0(), "size");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getAttributeRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "size",
+ lv_size_3_0,
+ "INT",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) ']'
+ {
+ createLeafNode(grammarAccess.getAttributeAccess().getRightSquareBracketKeyword_2_2(), null);
+ }
+)? ':'
+ {
+ createLeafNode(grammarAccess.getAttributeAccess().getColonKeyword_3(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getAttributeAccess().getTypeTypeParserRuleCall_4_0(), currentNode);
+ }
+ lv_type_6_0=ruleType {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getAttributeRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "type",
+ lv_type_6_0,
+ "Type",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleOperation
+entryRuleOperation returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getOperationRule(), currentNode); }
+ iv_ruleOperation=ruleOperation
+ { $current=$iv_ruleOperation.current; }
+ EOF
+;
+
+// Rule Operation
+ruleOperation returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'Operation'
+ {
+ createLeafNode(grammarAccess.getOperationAccess().getOperationKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getOperationAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getOperationRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) '('
+ {
+ createLeafNode(grammarAccess.getOperationAccess().getLeftParenthesisKeyword_2(), null);
+ }
+((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getOperationAccess().getArgumentsFreeTypedIDParserRuleCall_3_0_0(), currentNode);
+ }
+ lv_arguments_3_0=ruleFreeTypedID {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getOperationRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "arguments",
+ lv_arguments_3_0,
+ "FreeTypedID",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)( ','
+ {
+ createLeafNode(grammarAccess.getOperationAccess().getCommaKeyword_3_1_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getOperationAccess().getArgumentsFreeTypedIDParserRuleCall_3_1_1_0(), currentNode);
+ }
+ lv_arguments_5_0=ruleFreeTypedID {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getOperationRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "arguments",
+ lv_arguments_5_0,
+ "FreeTypedID",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))*)? ')'
+ {
+ createLeafNode(grammarAccess.getOperationAccess().getRightParenthesisKeyword_4(), null);
+ }
+( ':'
+ {
+ createLeafNode(grammarAccess.getOperationAccess().getColonKeyword_5_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getOperationAccess().getReturntypeFreeTypeParserRuleCall_5_1_0(), currentNode);
+ }
+ lv_returntype_8_0=ruleFreeType {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getOperationRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "returntype",
+ lv_returntype_8_0,
+ "FreeType",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getOperationAccess().getDetailCodeDetailCodeParserRuleCall_6_0(), currentNode);
+ }
+ lv_detailCode_9_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getOperationRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "detailCode",
+ lv_detailCode_9_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleProtocolClass
+entryRuleProtocolClass returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getProtocolClassRule(), currentNode); }
+ iv_ruleProtocolClass=ruleProtocolClass
+ { $current=$iv_ruleProtocolClass.current; }
+ EOF
+;
+
+// Rule ProtocolClass
+ruleProtocolClass returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'ProtocolClass'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getProtocolClassKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)( 'extends'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getExtendsKeyword_2_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolClassAccess().getBaseProtocolClassCrossReference_2_1_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '{'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_3(), null);
+ }
+( 'usercode1'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getUsercode1Keyword_4_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolClassAccess().getUserCode1DetailCodeParserRuleCall_4_1_0(), currentNode);
+ }
+ lv_userCode1_6_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "userCode1",
+ lv_userCode1_6_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?( 'usercode2'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getUsercode2Keyword_5_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolClassAccess().getUserCode2DetailCodeParserRuleCall_5_1_0(), currentNode);
+ }
+ lv_userCode2_8_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "userCode2",
+ lv_userCode2_8_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? 'incoming'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getIncomingKeyword_6(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_7(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolClassAccess().getIncomingMessagesMessageParserRuleCall_8_0(), currentNode);
+ }
+ lv_incomingMessages_11_0=ruleMessage {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "incomingMessages",
+ lv_incomingMessages_11_0,
+ "Message",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_9(), null);
+ }
+ 'outgoing'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getOutgoingKeyword_10(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_11(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolClassAccess().getOutgoingMessagesMessageParserRuleCall_12_0(), currentNode);
+ }
+ lv_outgoingMessages_15_0=ruleMessage {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "outgoingMessages",
+ lv_outgoingMessages_15_0,
+ "Message",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_13(), null);
+ }
+( 'regular'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getRegularKeyword_14_0(), null);
+ }
+ 'PortClass'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getPortClassKeyword_14_1(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolClassAccess().getRegularPortClassParserRuleCall_14_2_0(), currentNode);
+ }
+ lv_regular_19_0=rulePortClass {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "regular",
+ lv_regular_19_0,
+ "PortClass",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?( 'conjugate'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getConjugateKeyword_15_0(), null);
+ }
+ 'PortClass'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getPortClassKeyword_15_1(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolClassAccess().getConjugatePortClassParserRuleCall_15_2_0(), currentNode);
+ }
+ lv_conjugate_22_0=rulePortClass {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "conjugate",
+ lv_conjugate_22_0,
+ "PortClass",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolClassAccess().getSemanticsProtocolSemanticsParserRuleCall_16_0(), currentNode);
+ }
+ lv_semantics_23_0=ruleProtocolSemantics {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "semantics",
+ lv_semantics_23_0,
+ "ProtocolSemantics",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)? '}'
+ {
+ createLeafNode(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_17(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleMessage
+entryRuleMessage returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getMessageRule(), currentNode); }
+ iv_ruleMessage=ruleMessage
+ { $current=$iv_ruleMessage.current; }
+ EOF
+;
+
+// Rule Message
+ruleMessage returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'Message'
+ {
+ createLeafNode(grammarAccess.getMessageAccess().getMessageKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getMessageAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getMessageRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) '('
+ {
+ createLeafNode(grammarAccess.getMessageAccess().getLeftParenthesisKeyword_2(), null);
+ }
+((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getMessageAccess().getArgumentsTypedIDParserRuleCall_3_0_0(), currentNode);
+ }
+ lv_arguments_3_0=ruleTypedID {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getMessageRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "arguments",
+ lv_arguments_3_0,
+ "TypedID",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)( ','
+ {
+ createLeafNode(grammarAccess.getMessageAccess().getCommaKeyword_3_1_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getMessageAccess().getArgumentsTypedIDParserRuleCall_3_1_1_0(), currentNode);
+ }
+ lv_arguments_5_0=ruleTypedID {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getMessageRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "arguments",
+ lv_arguments_5_0,
+ "TypedID",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))*)? ')'
+ {
+ createLeafNode(grammarAccess.getMessageAccess().getRightParenthesisKeyword_4(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePortClass
+entryRulePortClass returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getPortClassRule(), currentNode); }
+ iv_rulePortClass=rulePortClass
+ { $current=$iv_rulePortClass.current; }
+ EOF
+;
+
+// Rule PortClass
+rulePortClass returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( '{'
+ {
+ createLeafNode(grammarAccess.getPortClassAccess().getLeftCurlyBracketKeyword_0(), null);
+ }
+( 'usercode'
+ {
+ createLeafNode(grammarAccess.getPortClassAccess().getUsercodeKeyword_1_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getPortClassAccess().getUserCodeDetailCodeParserRuleCall_1_1_0(), currentNode);
+ }
+ lv_userCode_2_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getPortClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "userCode",
+ lv_userCode_2_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getPortClassAccess().getAttributesAttributeParserRuleCall_2_0_0(), currentNode);
+ }
+ lv_attributes_3_0=ruleAttribute {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getPortClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "attributes",
+ lv_attributes_3_0,
+ "Attribute",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getPortClassAccess().getOperationsOperationParserRuleCall_2_1_0(), currentNode);
+ }
+ lv_operations_4_0=ruleOperation {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getPortClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "operations",
+ lv_operations_4_0,
+ "Operation",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getPortClassAccess().getMsgHandlersMessageHandlerParserRuleCall_2_2_0(), currentNode);
+ }
+ lv_msgHandlers_5_0=ruleMessageHandler {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getPortClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "msgHandlers",
+ lv_msgHandlers_5_0,
+ "MessageHandler",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))+ '}'
+ {
+ createLeafNode(grammarAccess.getPortClassAccess().getRightCurlyBracketKeyword_3(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleMessageHandler
+entryRuleMessageHandler returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getMessageHandlerRule(), currentNode); }
+ iv_ruleMessageHandler=ruleMessageHandler
+ { $current=$iv_ruleMessageHandler.current; }
+ EOF
+;
+
+// Rule MessageHandler
+ruleMessageHandler returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'handle'
+ {
+ createLeafNode(grammarAccess.getMessageHandlerAccess().getHandleKeyword_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getMessageHandlerRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getMessageHandlerAccess().getMsgMessageCrossReference_1_0(), "msg");
+ }
+
+)
+)(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getMessageHandlerAccess().getDetailCodeDetailCodeParserRuleCall_2_0(), currentNode);
+ }
+ lv_detailCode_2_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getMessageHandlerRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "detailCode",
+ lv_detailCode_2_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleProtocolSemantics
+entryRuleProtocolSemantics returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getProtocolSemanticsRule(), currentNode); }
+ iv_ruleProtocolSemantics=ruleProtocolSemantics
+ { $current=$iv_ruleProtocolSemantics.current; }
+ EOF
+;
+
+// Rule ProtocolSemantics
+ruleProtocolSemantics returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'semantics'
+ {
+ createLeafNode(grammarAccess.getProtocolSemanticsAccess().getSemanticsKeyword_0(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getProtocolSemanticsAccess().getLeftCurlyBracketKeyword_1(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getProtocolSemanticsAccess().getRulesSemanticsRuleParserRuleCall_2_0(), currentNode);
+ }
+ lv_rules_2_0=ruleSemanticsRule {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getProtocolSemanticsRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "rules",
+ lv_rules_2_0,
+ "SemanticsRule",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)+ '}'
+ {
+ createLeafNode(grammarAccess.getProtocolSemanticsAccess().getRightCurlyBracketKeyword_3(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSemanticsRule
+entryRuleSemanticsRule returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSemanticsRuleRule(), currentNode); }
+ iv_ruleSemanticsRule=ruleSemanticsRule
+ { $current=$iv_ruleSemanticsRule.current; }
+ EOF
+;
+
+// Rule SemanticsRule
+ruleSemanticsRule returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSemanticsRuleAccess().getSemanticsInRuleParserRuleCall_0(), currentNode);
+ }
+ this_SemanticsInRule_0=ruleSemanticsInRule
+ {
+ $current = $this_SemanticsInRule_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getSemanticsRuleAccess().getSemanticsOutRuleParserRuleCall_1(), currentNode);
+ }
+ this_SemanticsOutRule_1=ruleSemanticsOutRule
+ {
+ $current = $this_SemanticsOutRule_1.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSemanticsInRule
+entryRuleSemanticsInRule returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSemanticsInRuleRule(), currentNode); }
+ iv_ruleSemanticsInRule=ruleSemanticsInRule
+ { $current=$iv_ruleSemanticsInRule.current; }
+ EOF
+;
+
+// Rule SemanticsInRule
+ruleSemanticsInRule returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'in'
+ {
+ createLeafNode(grammarAccess.getSemanticsInRuleAccess().getInKeyword_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSemanticsInRuleRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getSemanticsInRuleAccess().getMsgMessageCrossReference_1_0(), "msg");
+ }
+
+)
+) '->'
+ {
+ createLeafNode(grammarAccess.getSemanticsInRuleAccess().getHyphenMinusGreaterThanSignKeyword_2(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getSemanticsInRuleAccess().getLeftCurlyBracketKeyword_3(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSemanticsInRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_4_0(), currentNode);
+ }
+ lv_followUps_4_0=ruleSemanticsRule {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSemanticsInRuleRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "followUps",
+ lv_followUps_4_0,
+ "SemanticsRule",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getSemanticsInRuleAccess().getRightCurlyBracketKeyword_5(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSemanticsOutRule
+entryRuleSemanticsOutRule returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSemanticsOutRuleRule(), currentNode); }
+ iv_ruleSemanticsOutRule=ruleSemanticsOutRule
+ { $current=$iv_ruleSemanticsOutRule.current; }
+ EOF
+;
+
+// Rule SemanticsOutRule
+ruleSemanticsOutRule returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'out'
+ {
+ createLeafNode(grammarAccess.getSemanticsOutRuleAccess().getOutKeyword_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSemanticsOutRuleRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getSemanticsOutRuleAccess().getMsgMessageCrossReference_1_0(), "msg");
+ }
+
+)
+) '->'
+ {
+ createLeafNode(grammarAccess.getSemanticsOutRuleAccess().getHyphenMinusGreaterThanSignKeyword_2(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getSemanticsOutRuleAccess().getLeftCurlyBracketKeyword_3(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSemanticsOutRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_4_0(), currentNode);
+ }
+ lv_followUps_4_0=ruleSemanticsRule {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSemanticsOutRuleRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "followUps",
+ lv_followUps_4_0,
+ "SemanticsRule",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getSemanticsOutRuleAccess().getRightCurlyBracketKeyword_5(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleActorClass
+entryRuleActorClass returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getActorClassRule(), currentNode); }
+ iv_ruleActorClass=ruleActorClass
+ { $current=$iv_ruleActorClass.current; }
+ EOF
+;
+
+// Rule ActorClass
+ruleActorClass returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ lv_abstract_0_0= 'abstract'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getAbstractAbstractKeyword_0_0(), "abstract");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "abstract", true, "abstract", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)? 'ActorClass'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getActorClassKeyword_1(), null);
+ }
+(
+(
+ lv_name_2_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getNameIDTerminalRuleCall_2_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)( 'extends'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getExtendsKeyword_3_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getBaseActorClassCrossReference_3_1_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '{'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_4(), null);
+ }
+( 'Interface'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getInterfaceKeyword_5_0(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_5_1(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getIfPortsPortParserRuleCall_5_2_0(), currentNode);
+ }
+ lv_ifPorts_8_0=rulePort {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "ifPorts",
+ lv_ifPorts_8_0,
+ "Port",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getIfSPPsSPPRefParserRuleCall_5_3_0(), currentNode);
+ }
+ lv_ifSPPs_9_0=ruleSPPRef {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "ifSPPs",
+ lv_ifSPPs_9_0,
+ "SPPRef",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_5_4(), null);
+ }
+)?( 'Structure'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getStructureKeyword_6_0(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_6_1(), null);
+ }
+( 'usercode1'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getUsercode1Keyword_6_2_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getUserCode1DetailCodeParserRuleCall_6_2_1_0(), currentNode);
+ }
+ lv_userCode1_14_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "userCode1",
+ lv_userCode1_14_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?( 'usercode2'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getUsercode2Keyword_6_3_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getUserCode2DetailCodeParserRuleCall_6_3_1_0(), currentNode);
+ }
+ lv_userCode2_16_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "userCode2",
+ lv_userCode2_16_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getIntPortsPortParserRuleCall_6_4_0_0(), currentNode);
+ }
+ lv_intPorts_17_0=rulePort {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "intPorts",
+ lv_intPorts_17_0,
+ "Port",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getExtPortsExternalPortParserRuleCall_6_4_1_0(), currentNode);
+ }
+ lv_extPorts_18_0=ruleExternalPort {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "extPorts",
+ lv_extPorts_18_0,
+ "ExternalPort",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getServiceImplementationsServiceImplementationParserRuleCall_6_5_0(), currentNode);
+ }
+ lv_serviceImplementations_19_0=ruleServiceImplementation {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "serviceImplementations",
+ lv_serviceImplementations_19_0,
+ "ServiceImplementation",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getStrSAPsSAPRefParserRuleCall_6_6_0(), currentNode);
+ }
+ lv_strSAPs_20_0=ruleSAPRef {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "strSAPs",
+ lv_strSAPs_20_0,
+ "SAPRef",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getAttributesAttributeParserRuleCall_6_7_0(), currentNode);
+ }
+ lv_attributes_21_0=ruleAttribute {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "attributes",
+ lv_attributes_21_0,
+ "Attribute",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getActorRefsActorRefParserRuleCall_6_8_0(), currentNode);
+ }
+ lv_actorRefs_22_0=ruleActorRef {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "actorRefs",
+ lv_actorRefs_22_0,
+ "ActorRef",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getBindingsBindingParserRuleCall_6_9_0(), currentNode);
+ }
+ lv_bindings_23_0=ruleBinding {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "bindings",
+ lv_bindings_23_0,
+ "Binding",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getConnectionsLayerConnectionParserRuleCall_6_10_0(), currentNode);
+ }
+ lv_connections_24_0=ruleLayerConnection {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "connections",
+ lv_connections_24_0,
+ "LayerConnection",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_6_11(), null);
+ }
+)?( 'Behavior'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getBehaviorKeyword_7_0(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_7_1(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getOperationsOperationParserRuleCall_7_2_0(), currentNode);
+ }
+ lv_operations_28_0=ruleOperation {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "operations",
+ lv_operations_28_0,
+ "Operation",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorClassAccess().getStateMachineStateMachineParserRuleCall_7_3_0(), currentNode);
+ }
+ lv_stateMachine_29_0=ruleStateMachine {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "stateMachine",
+ lv_stateMachine_29_0,
+ "StateMachine",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)? '}'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_7_4(), null);
+ }
+)? '}'
+ {
+ createLeafNode(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_8(), null);
+ }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRulePort
+entryRulePort returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getPortRule(), currentNode); }
+ iv_rulePort=rulePort
+ { $current=$iv_rulePort.current; }
+ EOF
+;
+
+// Rule Port
+rulePort returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ lv_conjugated_0_0= 'conjugated'
+ {
+ createLeafNode(grammarAccess.getPortAccess().getConjugatedConjugatedKeyword_0_0(), "conjugated");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getPortRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "conjugated", true, "conjugated", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)? 'Port'
+ {
+ createLeafNode(grammarAccess.getPortAccess().getPortKeyword_1(), null);
+ }
+(
+(
+ lv_name_2_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getPortAccess().getNameIDTerminalRuleCall_2_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getPortRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)( '['
+ {
+ createLeafNode(grammarAccess.getPortAccess().getLeftSquareBracketKeyword_3_0(), null);
+ }
+(
+(
+ lv_multiplicity_4_0=RULE_INT
+ {
+ createLeafNode(grammarAccess.getPortAccess().getMultiplicityINTTerminalRuleCall_3_1_0(), "multiplicity");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getPortRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "multiplicity",
+ lv_multiplicity_4_0,
+ "INT",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) ']'
+ {
+ createLeafNode(grammarAccess.getPortAccess().getRightSquareBracketKeyword_3_2(), null);
+ }
+)? ':'
+ {
+ createLeafNode(grammarAccess.getPortAccess().getColonKeyword_4(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getPortRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getPortAccess().getProtocolProtocolClassCrossReference_5_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleExternalPort
+entryRuleExternalPort returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getExternalPortRule(), currentNode); }
+ iv_ruleExternalPort=ruleExternalPort
+ { $current=$iv_ruleExternalPort.current; }
+ EOF
+;
+
+// Rule ExternalPort
+ruleExternalPort returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'external'
+ {
+ createLeafNode(grammarAccess.getExternalPortAccess().getExternalKeyword_0(), null);
+ }
+ 'Port'
+ {
+ createLeafNode(grammarAccess.getExternalPortAccess().getPortKeyword_1(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getExternalPortRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getExternalPortAccess().getIfportPortCrossReference_2_0(), "ifport");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSAPRef
+entryRuleSAPRef returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSAPRefRule(), currentNode); }
+ iv_ruleSAPRef=ruleSAPRef
+ { $current=$iv_ruleSAPRef.current; }
+ EOF
+;
+
+// Rule SAPRef
+ruleSAPRef returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'SAP'
+ {
+ createLeafNode(grammarAccess.getSAPRefAccess().getSAPKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getSAPRefAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSAPRefRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) ':'
+ {
+ createLeafNode(grammarAccess.getSAPRefAccess().getColonKeyword_2(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSAPRefRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getSAPRefAccess().getProtocolProtocolClassCrossReference_3_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSPPRef
+entryRuleSPPRef returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSPPRefRule(), currentNode); }
+ iv_ruleSPPRef=ruleSPPRef
+ { $current=$iv_ruleSPPRef.current; }
+ EOF
+;
+
+// Rule SPPRef
+ruleSPPRef returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'SPP'
+ {
+ createLeafNode(grammarAccess.getSPPRefAccess().getSPPKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getSPPRefAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSPPRefRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) ':'
+ {
+ createLeafNode(grammarAccess.getSPPRefAccess().getColonKeyword_2(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSPPRefRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getSPPRefAccess().getProtocolProtocolClassCrossReference_3_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleServiceImplementation
+entryRuleServiceImplementation returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getServiceImplementationRule(), currentNode); }
+ iv_ruleServiceImplementation=ruleServiceImplementation
+ { $current=$iv_ruleServiceImplementation.current; }
+ EOF
+;
+
+// Rule ServiceImplementation
+ruleServiceImplementation returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'ServiceImplementation'
+ {
+ createLeafNode(grammarAccess.getServiceImplementationAccess().getServiceImplementationKeyword_0(), null);
+ }
+ 'of'
+ {
+ createLeafNode(grammarAccess.getServiceImplementationAccess().getOfKeyword_1(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getServiceImplementationRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getServiceImplementationAccess().getSppSPPRefCrossReference_2_0(), "spp");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleLogicalSystem
+entryRuleLogicalSystem returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getLogicalSystemRule(), currentNode); }
+ iv_ruleLogicalSystem=ruleLogicalSystem
+ { $current=$iv_ruleLogicalSystem.current; }
+ EOF
+;
+
+// Rule LogicalSystem
+ruleLogicalSystem returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'LogicalSystem'
+ {
+ createLeafNode(grammarAccess.getLogicalSystemAccess().getLogicalSystemKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getLogicalSystemAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLogicalSystemRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getLogicalSystemAccess().getLeftCurlyBracketKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getLogicalSystemAccess().getSubSystemsSubSystemRefParserRuleCall_3_0(), currentNode);
+ }
+ lv_subSystems_3_0=ruleSubSystemRef {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLogicalSystemRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "subSystems",
+ lv_subSystems_3_0,
+ "SubSystemRef",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getLogicalSystemAccess().getBindingsBindingParserRuleCall_4_0(), currentNode);
+ }
+ lv_bindings_4_0=ruleBinding {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLogicalSystemRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "bindings",
+ lv_bindings_4_0,
+ "Binding",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getLogicalSystemAccess().getConnectionsLayerConnectionParserRuleCall_5_0(), currentNode);
+ }
+ lv_connections_5_0=ruleLayerConnection {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLogicalSystemRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "connections",
+ lv_connections_5_0,
+ "LayerConnection",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getLogicalSystemAccess().getRightCurlyBracketKeyword_6(), null);
+ }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleSubSystemRef
+entryRuleSubSystemRef returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSubSystemRefRule(), currentNode); }
+ iv_ruleSubSystemRef=ruleSubSystemRef
+ { $current=$iv_ruleSubSystemRef.current; }
+ EOF
+;
+
+// Rule SubSystemRef
+ruleSubSystemRef returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'SubSystemRef'
+ {
+ createLeafNode(grammarAccess.getSubSystemRefAccess().getSubSystemRefKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getSubSystemRefAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemRefRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) ':'
+ {
+ createLeafNode(grammarAccess.getSubSystemRefAccess().getColonKeyword_2(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemRefRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getSubSystemRefAccess().getTypeSubSystemClassCrossReference_3_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSubSystemClass
+entryRuleSubSystemClass returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSubSystemClassRule(), currentNode); }
+ iv_ruleSubSystemClass=ruleSubSystemClass
+ { $current=$iv_ruleSubSystemClass.current; }
+ EOF
+;
+
+// Rule SubSystemClass
+ruleSubSystemClass returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'SubSystemClass'
+ {
+ createLeafNode(grammarAccess.getSubSystemClassAccess().getSubSystemClassKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getSubSystemClassAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getSubSystemClassAccess().getLeftCurlyBracketKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSubSystemClassAccess().getRelayPortsPortParserRuleCall_3_0(), currentNode);
+ }
+ lv_relayPorts_3_0=rulePort {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "relayPorts",
+ lv_relayPorts_3_0,
+ "Port",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSubSystemClassAccess().getIfSPPsSPPRefParserRuleCall_4_0(), currentNode);
+ }
+ lv_ifSPPs_4_0=ruleSPPRef {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "ifSPPs",
+ lv_ifSPPs_4_0,
+ "SPPRef",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSubSystemClassAccess().getActorRefsActorRefParserRuleCall_5_0(), currentNode);
+ }
+ lv_actorRefs_5_0=ruleActorRef {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "actorRefs",
+ lv_actorRefs_5_0,
+ "ActorRef",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSubSystemClassAccess().getBindingsBindingParserRuleCall_6_0(), currentNode);
+ }
+ lv_bindings_6_0=ruleBinding {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "bindings",
+ lv_bindings_6_0,
+ "Binding",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSubSystemClassAccess().getConnectionsLayerConnectionParserRuleCall_7_0(), currentNode);
+ }
+ lv_connections_7_0=ruleLayerConnection {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "connections",
+ lv_connections_7_0,
+ "LayerConnection",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSubSystemClassAccess().getThreadsLogicalThreadParserRuleCall_8_0(), currentNode);
+ }
+ lv_threads_8_0=ruleLogicalThread {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubSystemClassRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "threads",
+ lv_threads_8_0,
+ "LogicalThread",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)* '}'
+ {
+ createLeafNode(grammarAccess.getSubSystemClassAccess().getRightCurlyBracketKeyword_9(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLogicalThread
+entryRuleLogicalThread returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getLogicalThreadRule(), currentNode); }
+ iv_ruleLogicalThread=ruleLogicalThread
+ { $current=$iv_ruleLogicalThread.current; }
+ EOF
+;
+
+// Rule LogicalThread
+ruleLogicalThread returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'LogicalThread'
+ {
+ createLeafNode(grammarAccess.getLogicalThreadAccess().getLogicalThreadKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getLogicalThreadAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLogicalThreadRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getLogicalThreadAccess().getLeftCurlyBracketKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getLogicalThreadAccess().getInstancesActorInstancePathParserRuleCall_3_0(), currentNode);
+ }
+ lv_instances_3_0=ruleActorInstancePath {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLogicalThreadRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "instances",
+ lv_instances_3_0,
+ "ActorInstancePath",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)( ','
+ {
+ createLeafNode(grammarAccess.getLogicalThreadAccess().getCommaKeyword_4_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getLogicalThreadAccess().getInstancesActorInstancePathParserRuleCall_4_1_0(), currentNode);
+ }
+ lv_instances_5_0=ruleActorInstancePath {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLogicalThreadRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "instances",
+ lv_instances_5_0,
+ "ActorInstancePath",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))* '}'
+ {
+ createLeafNode(grammarAccess.getLogicalThreadAccess().getRightCurlyBracketKeyword_5(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleActorInstancePath
+entryRuleActorInstancePath returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getActorInstancePathRule(), currentNode); }
+ iv_ruleActorInstancePath=ruleActorInstancePath
+ { $current=$iv_ruleActorInstancePath.current; }
+ EOF
+;
+
+// Rule ActorInstancePath
+ruleActorInstancePath returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ lv_segments_0_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getActorInstancePathAccess().getSegmentsIDTerminalRuleCall_0_0(), "segments");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorInstancePathRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ add(
+ $current,
+ "segments",
+ lv_segments_0_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)( '.'
+ {
+ createLeafNode(grammarAccess.getActorInstancePathAccess().getFullStopKeyword_1_0(), null);
+ }
+(
+(
+ lv_segments_2_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getActorInstancePathAccess().getSegmentsIDTerminalRuleCall_1_1_0(), "segments");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorInstancePathRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ add(
+ $current,
+ "segments",
+ lv_segments_2_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleBinding
+entryRuleBinding returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getBindingRule(), currentNode); }
+ iv_ruleBinding=ruleBinding
+ { $current=$iv_ruleBinding.current; }
+ EOF
+;
+
+// Rule Binding
+ruleBinding returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'Binding'
+ {
+ createLeafNode(grammarAccess.getBindingAccess().getBindingKeyword_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getBindingAccess().getEndpoint1BindingEndPointParserRuleCall_1_0(), currentNode);
+ }
+ lv_endpoint1_1_0=ruleBindingEndPoint {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getBindingRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "endpoint1",
+ lv_endpoint1_1_0,
+ "BindingEndPoint",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) 'and'
+ {
+ createLeafNode(grammarAccess.getBindingAccess().getAndKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getBindingAccess().getEndpoint2BindingEndPointParserRuleCall_3_0(), currentNode);
+ }
+ lv_endpoint2_3_0=ruleBindingEndPoint {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getBindingRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "endpoint2",
+ lv_endpoint2_3_0,
+ "BindingEndPoint",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleBindingEndPoint
+entryRuleBindingEndPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getBindingEndPointRule(), currentNode); }
+ iv_ruleBindingEndPoint=ruleBindingEndPoint
+ { $current=$iv_ruleBindingEndPoint.current; }
+ EOF
+;
+
+// Rule BindingEndPoint
+ruleBindingEndPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(((
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getBindingEndPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getBindingEndPointAccess().getActorRefActorContainerRefCrossReference_0_0_0(), "actorRef");
+ }
+
+)
+) '.'
+ {
+ createLeafNode(grammarAccess.getBindingEndPointAccess().getFullStopKeyword_0_1(), null);
+ }
+)?(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getBindingEndPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getBindingEndPointAccess().getPortPortCrossReference_1_0(), "port");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleLayerConnection
+entryRuleLayerConnection returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getLayerConnectionRule(), currentNode); }
+ iv_ruleLayerConnection=ruleLayerConnection
+ { $current=$iv_ruleLayerConnection.current; }
+ EOF
+;
+
+// Rule LayerConnection
+ruleLayerConnection returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'LayerConnection'
+ {
+ createLeafNode(grammarAccess.getLayerConnectionAccess().getLayerConnectionKeyword_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getLayerConnectionAccess().getFromSAPointParserRuleCall_1_0(), currentNode);
+ }
+ lv_from_1_0=ruleSAPoint {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLayerConnectionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "from",
+ lv_from_1_0,
+ "SAPoint",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) 'satisfied_by'
+ {
+ createLeafNode(grammarAccess.getLayerConnectionAccess().getSatisfied_byKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getLayerConnectionAccess().getToSPPointParserRuleCall_3_0(), currentNode);
+ }
+ lv_to_3_0=ruleSPPoint {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getLayerConnectionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "to",
+ lv_to_3_0,
+ "SPPoint",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSAPoint
+entryRuleSAPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSAPointRule(), currentNode); }
+ iv_ruleSAPoint=ruleSAPoint
+ { $current=$iv_ruleSAPoint.current; }
+ EOF
+;
+
+// Rule SAPoint
+ruleSAPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getSAPointAccess().getRefSAPointParserRuleCall_0(), currentNode);
+ }
+ this_RefSAPoint_0=ruleRefSAPoint
+ {
+ $current = $this_RefSAPoint_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getSAPointAccess().getRelaySAPointParserRuleCall_1(), currentNode);
+ }
+ this_RelaySAPoint_1=ruleRelaySAPoint
+ {
+ $current = $this_RelaySAPoint_1.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleRefSAPoint
+entryRuleRefSAPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getRefSAPointRule(), currentNode); }
+ iv_ruleRefSAPoint=ruleRefSAPoint
+ { $current=$iv_ruleRefSAPoint.current; }
+ EOF
+;
+
+// Rule RefSAPoint
+ruleRefSAPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'ref'
+ {
+ createLeafNode(grammarAccess.getRefSAPointAccess().getRefKeyword_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRefSAPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getRefSAPointAccess().getRefActorContainerRefCrossReference_1_0(), "ref");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleRelaySAPoint
+entryRuleRelaySAPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getRelaySAPointRule(), currentNode); }
+ iv_ruleRelaySAPoint=ruleRelaySAPoint
+ { $current=$iv_ruleRelaySAPoint.current; }
+ EOF
+;
+
+// Rule RelaySAPoint
+ruleRelaySAPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'relay_sap'
+ {
+ createLeafNode(grammarAccess.getRelaySAPointAccess().getRelay_sapKeyword_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRelaySAPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getRelaySAPointAccess().getRelaySPPRefCrossReference_1_0(), "relay");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSPPoint
+entryRuleSPPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSPPointRule(), currentNode); }
+ iv_ruleSPPoint=ruleSPPoint
+ { $current=$iv_ruleSPPoint.current; }
+ EOF
+;
+
+// Rule SPPoint
+ruleSPPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSPPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getSPPointAccess().getRefActorContainerRefCrossReference_0_0(), "ref");
+ }
+
+)
+) '.'
+ {
+ createLeafNode(grammarAccess.getSPPointAccess().getFullStopKeyword_1(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSPPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getSPPointAccess().getServiceSPPRefCrossReference_2_0(), "service");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleActorRef
+entryRuleActorRef returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getActorRefRule(), currentNode); }
+ iv_ruleActorRef=ruleActorRef
+ { $current=$iv_ruleActorRef.current; }
+ EOF
+;
+
+// Rule ActorRef
+ruleActorRef returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'ActorRef'
+ {
+ createLeafNode(grammarAccess.getActorRefAccess().getActorRefKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getActorRefAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorRefRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) ':'
+ {
+ createLeafNode(grammarAccess.getActorRefAccess().getColonKeyword_2(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getActorRefRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getActorRefAccess().getTypeActorClassCrossReference_3_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleStateGraphNode
+entryRuleStateGraphNode returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getStateGraphNodeRule(), currentNode); }
+ iv_ruleStateGraphNode=ruleStateGraphNode
+ { $current=$iv_ruleStateGraphNode.current; }
+ EOF
+;
+
+// Rule StateGraphNode
+ruleStateGraphNode returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateGraphNodeAccess().getStateParserRuleCall_0(), currentNode);
+ }
+ this_State_0=ruleState
+ {
+ $current = $this_State_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateGraphNodeAccess().getChoicePointParserRuleCall_1(), currentNode);
+ }
+ this_ChoicePoint_1=ruleChoicePoint
+ {
+ $current = $this_ChoicePoint_1.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateGraphNodeAccess().getTrPointParserRuleCall_2(), currentNode);
+ }
+ this_TrPoint_2=ruleTrPoint
+ {
+ $current = $this_TrPoint_2.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleState
+entryRuleState returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getStateRule(), currentNode); }
+ iv_ruleState=ruleState
+ { $current=$iv_ruleState.current; }
+ EOF
+;
+
+// Rule State
+ruleState returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateAccess().getBaseStateParserRuleCall_0(), currentNode);
+ }
+ this_BaseState_0=ruleBaseState
+ {
+ $current = $this_BaseState_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateAccess().getRefinedStateParserRuleCall_1(), currentNode);
+ }
+ this_RefinedState_1=ruleRefinedState
+ {
+ $current = $this_RefinedState_1.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStateGraph
+entryRuleStateGraph returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getStateGraphRule(), currentNode); }
+ iv_ruleStateGraph=ruleStateGraph
+ { $current=$iv_ruleStateGraph.current; }
+ EOF
+;
+
+// Rule StateGraph
+ruleStateGraph returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( '{'
+ {
+ createLeafNode(grammarAccess.getStateGraphAccess().getLeftCurlyBracketKeyword_0(), null);
+ }
+((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateGraphAccess().getStatesStateParserRuleCall_1_0_0(), currentNode);
+ }
+ lv_states_1_0=ruleState {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateGraphRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "states",
+ lv_states_1_0,
+ "State",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateGraphAccess().getTrPointsTrPointParserRuleCall_1_1_0(), currentNode);
+ }
+ lv_trPoints_2_0=ruleTrPoint {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateGraphRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "trPoints",
+ lv_trPoints_2_0,
+ "TrPoint",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateGraphAccess().getChPointsChoicePointParserRuleCall_1_2_0(), currentNode);
+ }
+ lv_chPoints_3_0=ruleChoicePoint {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateGraphRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "chPoints",
+ lv_chPoints_3_0,
+ "ChoicePoint",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateGraphAccess().getTransitionsTransitionParserRuleCall_1_3_0(), currentNode);
+ }
+ lv_transitions_4_0=ruleTransition {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateGraphRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "transitions",
+ lv_transitions_4_0,
+ "Transition",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))+ '}'
+ {
+ createLeafNode(grammarAccess.getStateGraphAccess().getRightCurlyBracketKeyword_2(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStateMachine
+entryRuleStateMachine returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getStateMachineRule(), currentNode); }
+ iv_ruleStateMachine=ruleStateMachine
+ { $current=$iv_ruleStateMachine.current; }
+ EOF
+;
+
+// Rule StateMachine
+ruleStateMachine returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'StateMachine'
+ {
+ createLeafNode(grammarAccess.getStateMachineAccess().getStateMachineKeyword_0(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getStateMachineAccess().getLeftCurlyBracketKeyword_1(), null);
+ }
+((
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateMachineAccess().getStatesStateParserRuleCall_2_0_0(), currentNode);
+ }
+ lv_states_2_0=ruleState {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateMachineRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "states",
+ lv_states_2_0,
+ "State",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateMachineAccess().getTrPointsTrPointParserRuleCall_2_1_0(), currentNode);
+ }
+ lv_trPoints_3_0=ruleTrPoint {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateMachineRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "trPoints",
+ lv_trPoints_3_0,
+ "TrPoint",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateMachineAccess().getChPointsChoicePointParserRuleCall_2_2_0(), currentNode);
+ }
+ lv_chPoints_4_0=ruleChoicePoint {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateMachineRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "chPoints",
+ lv_chPoints_4_0,
+ "ChoicePoint",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)
+ |(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getStateMachineAccess().getTransitionsTransitionParserRuleCall_2_3_0(), currentNode);
+ }
+ lv_transitions_5_0=ruleTransition {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateMachineRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "transitions",
+ lv_transitions_5_0,
+ "Transition",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))+ '}'
+ {
+ createLeafNode(grammarAccess.getStateMachineAccess().getRightCurlyBracketKeyword_3(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBaseState
+entryRuleBaseState returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getBaseStateRule(), currentNode); }
+ iv_ruleBaseState=ruleBaseState
+ { $current=$iv_ruleBaseState.current; }
+ EOF
+;
+
+// Rule BaseState
+ruleBaseState returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'State'
+ {
+ createLeafNode(grammarAccess.getBaseStateAccess().getStateKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getBaseStateAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getBaseStateRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getBaseStateAccess().getLeftCurlyBracketKeyword_2(), null);
+ }
+( 'entry'
+ {
+ createLeafNode(grammarAccess.getBaseStateAccess().getEntryKeyword_3_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getBaseStateAccess().getEntryCodeDetailCodeParserRuleCall_3_1_0(), currentNode);
+ }
+ lv_entryCode_4_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getBaseStateRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "entryCode",
+ lv_entryCode_4_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?( 'exit'
+ {
+ createLeafNode(grammarAccess.getBaseStateAccess().getExitKeyword_4_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getBaseStateAccess().getExitCodeDetailCodeParserRuleCall_4_1_0(), currentNode);
+ }
+ lv_exitCode_6_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getBaseStateRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "exitCode",
+ lv_exitCode_6_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?( 'subgraph'
+ {
+ createLeafNode(grammarAccess.getBaseStateAccess().getSubgraphKeyword_5_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getBaseStateAccess().getSubgraphStateGraphParserRuleCall_5_1_0(), currentNode);
+ }
+ lv_subgraph_8_0=ruleStateGraph {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getBaseStateRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "subgraph",
+ lv_subgraph_8_0,
+ "StateGraph",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '}'
+ {
+ createLeafNode(grammarAccess.getBaseStateAccess().getRightCurlyBracketKeyword_6(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleRefinedState
+entryRuleRefinedState returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getRefinedStateRule(), currentNode); }
+ iv_ruleRefinedState=ruleRefinedState
+ { $current=$iv_ruleRefinedState.current; }
+ EOF
+;
+
+// Rule RefinedState
+ruleRefinedState returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'RefinedState'
+ {
+ createLeafNode(grammarAccess.getRefinedStateAccess().getRefinedStateKeyword_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRefinedStateRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ {
+ currentNode=createCompositeNode(grammarAccess.getRefinedStateAccess().getBaseBaseStateCrossReference_1_0(), currentNode);
+ }
+ ruleFQN {
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getRefinedStateAccess().getLeftCurlyBracketKeyword_2(), null);
+ }
+( 'entry'
+ {
+ createLeafNode(grammarAccess.getRefinedStateAccess().getEntryKeyword_3_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRefinedStateAccess().getEntryCodeDetailCodeParserRuleCall_3_1_0(), currentNode);
+ }
+ lv_entryCode_4_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRefinedStateRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "entryCode",
+ lv_entryCode_4_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?( 'exit'
+ {
+ createLeafNode(grammarAccess.getRefinedStateAccess().getExitKeyword_4_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRefinedStateAccess().getExitCodeDetailCodeParserRuleCall_4_1_0(), currentNode);
+ }
+ lv_exitCode_6_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRefinedStateRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "exitCode",
+ lv_exitCode_6_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))?( 'subgraph'
+ {
+ createLeafNode(grammarAccess.getRefinedStateAccess().getSubgraphKeyword_5_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getRefinedStateAccess().getSubgraphStateGraphParserRuleCall_5_1_0(), currentNode);
+ }
+ lv_subgraph_8_0=ruleStateGraph {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getRefinedStateRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "subgraph",
+ lv_subgraph_8_0,
+ "StateGraph",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '}'
+ {
+ createLeafNode(grammarAccess.getRefinedStateAccess().getRightCurlyBracketKeyword_6(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDetailCode
+entryRuleDetailCode returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getDetailCodeRule(), currentNode); }
+ iv_ruleDetailCode=ruleDetailCode
+ { $current=$iv_ruleDetailCode.current; }
+ EOF
+;
+
+// Rule DetailCode
+ruleDetailCode returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( '{'
+ {
+ createLeafNode(grammarAccess.getDetailCodeAccess().getLeftCurlyBracketKeyword_0(), null);
+ }
+(
+(
+ lv_commands_1_0=RULE_STRING
+ {
+ createLeafNode(grammarAccess.getDetailCodeAccess().getCommandsSTRINGTerminalRuleCall_1_0(), "commands");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getDetailCodeRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ add(
+ $current,
+ "commands",
+ lv_commands_1_0,
+ "STRING",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)+ '}'
+ {
+ createLeafNode(grammarAccess.getDetailCodeAccess().getRightCurlyBracketKeyword_2(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTrPoint
+entryRuleTrPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTrPointRule(), currentNode); }
+ iv_ruleTrPoint=ruleTrPoint
+ { $current=$iv_ruleTrPoint.current; }
+ EOF
+;
+
+// Rule TrPoint
+ruleTrPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTrPointAccess().getTransitionPointParserRuleCall_0(), currentNode);
+ }
+ this_TransitionPoint_0=ruleTransitionPoint
+ {
+ $current = $this_TransitionPoint_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getTrPointAccess().getEntryPointParserRuleCall_1(), currentNode);
+ }
+ this_EntryPoint_1=ruleEntryPoint
+ {
+ $current = $this_EntryPoint_1.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getTrPointAccess().getExitPointParserRuleCall_2(), currentNode);
+ }
+ this_ExitPoint_2=ruleExitPoint
+ {
+ $current = $this_ExitPoint_2.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTransitionPoint
+entryRuleTransitionPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTransitionPointRule(), currentNode); }
+ iv_ruleTransitionPoint=ruleTransitionPoint
+ { $current=$iv_ruleTransitionPoint.current; }
+ EOF
+;
+
+// Rule TransitionPoint
+ruleTransitionPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ lv_handler_0_0= 'handler'
+ {
+ createLeafNode(grammarAccess.getTransitionPointAccess().getHandlerHandlerKeyword_0_0(), "handler");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTransitionPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ set($current, "handler", true, "handler", lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)? 'TransitionPoint'
+ {
+ createLeafNode(grammarAccess.getTransitionPointAccess().getTransitionPointKeyword_1(), null);
+ }
+(
+(
+ lv_name_2_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getTransitionPointAccess().getNameIDTerminalRuleCall_2_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTransitionPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleEntryPoint
+entryRuleEntryPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getEntryPointRule(), currentNode); }
+ iv_ruleEntryPoint=ruleEntryPoint
+ { $current=$iv_ruleEntryPoint.current; }
+ EOF
+;
+
+// Rule EntryPoint
+ruleEntryPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'EntryPoint'
+ {
+ createLeafNode(grammarAccess.getEntryPointAccess().getEntryPointKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getEntryPointAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getEntryPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleExitPoint
+entryRuleExitPoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getExitPointRule(), currentNode); }
+ iv_ruleExitPoint=ruleExitPoint
+ { $current=$iv_ruleExitPoint.current; }
+ EOF
+;
+
+// Rule ExitPoint
+ruleExitPoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'ExitPoint'
+ {
+ createLeafNode(grammarAccess.getExitPointAccess().getExitPointKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getExitPointAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getExitPointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleChoicePoint
+entryRuleChoicePoint returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getChoicePointRule(), currentNode); }
+ iv_ruleChoicePoint=ruleChoicePoint
+ { $current=$iv_ruleChoicePoint.current; }
+ EOF
+;
+
+// Rule ChoicePoint
+ruleChoicePoint returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'ChoicePoint'
+ {
+ createLeafNode(grammarAccess.getChoicePointAccess().getChoicePointKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getChoicePointAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getChoicePointRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTransition
+entryRuleTransition returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTransitionRule(), currentNode); }
+ iv_ruleTransition=ruleTransition
+ { $current=$iv_ruleTransition.current; }
+ EOF
+;
+
+// Rule Transition
+ruleTransition returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTransitionAccess().getInitialTransitionParserRuleCall_0(), currentNode);
+ }
+ this_InitialTransition_0=ruleInitialTransition
+ {
+ $current = $this_InitialTransition_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getTransitionAccess().getNonInitialTransitionParserRuleCall_1(), currentNode);
+ }
+ this_NonInitialTransition_1=ruleNonInitialTransition
+ {
+ $current = $this_NonInitialTransition_1.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleNonInitialTransition
+entryRuleNonInitialTransition returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getNonInitialTransitionRule(), currentNode); }
+ iv_ruleNonInitialTransition=ruleNonInitialTransition
+ { $current=$iv_ruleNonInitialTransition.current; }
+ EOF
+;
+
+// Rule NonInitialTransition
+ruleNonInitialTransition returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getNonInitialTransitionAccess().getTriggeredTransitionParserRuleCall_0(), currentNode);
+ }
+ this_TriggeredTransition_0=ruleTriggeredTransition
+ {
+ $current = $this_TriggeredTransition_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getNonInitialTransitionAccess().getContinuationTransitionParserRuleCall_1(), currentNode);
+ }
+ this_ContinuationTransition_1=ruleContinuationTransition
+ {
+ $current = $this_ContinuationTransition_1.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getNonInitialTransitionAccess().getCPBranchTransitionParserRuleCall_2(), currentNode);
+ }
+ this_CPBranchTransition_2=ruleCPBranchTransition
+ {
+ $current = $this_CPBranchTransition_2.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleInitialTransition
+entryRuleInitialTransition returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getInitialTransitionRule(), currentNode); }
+ iv_ruleInitialTransition=ruleInitialTransition
+ { $current=$iv_ruleInitialTransition.current; }
+ EOF
+;
+
+// Rule InitialTransition
+ruleInitialTransition returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'Transition'
+ {
+ createLeafNode(grammarAccess.getInitialTransitionAccess().getTransitionKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getInitialTransitionAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getInitialTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)? ':'
+ {
+ createLeafNode(grammarAccess.getInitialTransitionAccess().getColonKeyword_2(), null);
+ }
+ 'initial'
+ {
+ createLeafNode(grammarAccess.getInitialTransitionAccess().getInitialKeyword_3(), null);
+ }
+ '->'
+ {
+ createLeafNode(grammarAccess.getInitialTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getInitialTransitionAccess().getToTransitionTerminalParserRuleCall_5_0(), currentNode);
+ }
+ lv_to_5_0=ruleTransitionTerminal {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getInitialTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "to",
+ lv_to_5_0,
+ "TransitionTerminal",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getInitialTransitionAccess().getLeftCurlyBracketKeyword_6(), null);
+ }
+( 'action'
+ {
+ createLeafNode(grammarAccess.getInitialTransitionAccess().getActionKeyword_7_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getInitialTransitionAccess().getActionDetailCodeParserRuleCall_7_1_0(), currentNode);
+ }
+ lv_action_8_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getInitialTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "action",
+ lv_action_8_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '}'
+ {
+ createLeafNode(grammarAccess.getInitialTransitionAccess().getRightCurlyBracketKeyword_8(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleContinuationTransition
+entryRuleContinuationTransition returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getContinuationTransitionRule(), currentNode); }
+ iv_ruleContinuationTransition=ruleContinuationTransition
+ { $current=$iv_ruleContinuationTransition.current; }
+ EOF
+;
+
+// Rule ContinuationTransition
+ruleContinuationTransition returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'Transition'
+ {
+ createLeafNode(grammarAccess.getContinuationTransitionAccess().getTransitionKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getContinuationTransitionAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getContinuationTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)? ':'
+ {
+ createLeafNode(grammarAccess.getContinuationTransitionAccess().getColonKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getContinuationTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0(), currentNode);
+ }
+ lv_from_3_0=ruleTransitionTerminal {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getContinuationTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "from",
+ lv_from_3_0,
+ "TransitionTerminal",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '->'
+ {
+ createLeafNode(grammarAccess.getContinuationTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getContinuationTransitionAccess().getToTransitionTerminalParserRuleCall_5_0(), currentNode);
+ }
+ lv_to_5_0=ruleTransitionTerminal {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getContinuationTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "to",
+ lv_to_5_0,
+ "TransitionTerminal",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getContinuationTransitionAccess().getLeftCurlyBracketKeyword_6(), null);
+ }
+( 'action'
+ {
+ createLeafNode(grammarAccess.getContinuationTransitionAccess().getActionKeyword_7_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getContinuationTransitionAccess().getActionDetailCodeParserRuleCall_7_1_0(), currentNode);
+ }
+ lv_action_8_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getContinuationTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "action",
+ lv_action_8_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '}'
+ {
+ createLeafNode(grammarAccess.getContinuationTransitionAccess().getRightCurlyBracketKeyword_8(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTriggeredTransition
+entryRuleTriggeredTransition returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTriggeredTransitionRule(), currentNode); }
+ iv_ruleTriggeredTransition=ruleTriggeredTransition
+ { $current=$iv_ruleTriggeredTransition.current; }
+ EOF
+;
+
+// Rule TriggeredTransition
+ruleTriggeredTransition returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'Transition'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getTransitionKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggeredTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)? ':'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getColonKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTriggeredTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0(), currentNode);
+ }
+ lv_from_3_0=ruleTransitionTerminal {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggeredTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "from",
+ lv_from_3_0,
+ "TransitionTerminal",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '->'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTriggeredTransitionAccess().getToTransitionTerminalParserRuleCall_5_0(), currentNode);
+ }
+ lv_to_5_0=ruleTransitionTerminal {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggeredTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "to",
+ lv_to_5_0,
+ "TransitionTerminal",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getLeftCurlyBracketKeyword_6(), null);
+ }
+ 'triggers'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getTriggersKeyword_7(), null);
+ }
+ '{'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getLeftCurlyBracketKeyword_8(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTriggeredTransitionAccess().getTriggersTriggerParserRuleCall_9_0(), currentNode);
+ }
+ lv_triggers_9_0=ruleTrigger {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggeredTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "triggers",
+ lv_triggers_9_0,
+ "Trigger",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)( 'or'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getOrKeyword_10_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTriggeredTransitionAccess().getTriggersTriggerParserRuleCall_10_1_0(), currentNode);
+ }
+ lv_triggers_11_0=ruleTrigger {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggeredTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "triggers",
+ lv_triggers_11_0,
+ "Trigger",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))* '}'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getRightCurlyBracketKeyword_11(), null);
+ }
+( 'action'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getActionKeyword_12_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTriggeredTransitionAccess().getActionDetailCodeParserRuleCall_12_1_0(), currentNode);
+ }
+ lv_action_14_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggeredTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "action",
+ lv_action_14_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '}'
+ {
+ createLeafNode(grammarAccess.getTriggeredTransitionAccess().getRightCurlyBracketKeyword_13(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCPBranchTransition
+entryRuleCPBranchTransition returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getCPBranchTransitionRule(), currentNode); }
+ iv_ruleCPBranchTransition=ruleCPBranchTransition
+ { $current=$iv_ruleCPBranchTransition.current; }
+ EOF
+;
+
+// Rule CPBranchTransition
+ruleCPBranchTransition returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'Transition'
+ {
+ createLeafNode(grammarAccess.getCPBranchTransitionAccess().getTransitionKeyword_0(), null);
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ createLeafNode(grammarAccess.getCPBranchTransitionAccess().getNameIDTerminalRuleCall_1_0(), "name");
+ }
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getCPBranchTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ try {
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID",
+ lastConsumedNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+)? ':'
+ {
+ createLeafNode(grammarAccess.getCPBranchTransitionAccess().getColonKeyword_2(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getCPBranchTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0(), currentNode);
+ }
+ lv_from_3_0=ruleTransitionTerminal {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getCPBranchTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "from",
+ lv_from_3_0,
+ "TransitionTerminal",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '->'
+ {
+ createLeafNode(grammarAccess.getCPBranchTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getCPBranchTransitionAccess().getToTransitionTerminalParserRuleCall_5_0(), currentNode);
+ }
+ lv_to_5_0=ruleTransitionTerminal {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getCPBranchTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "to",
+ lv_to_5_0,
+ "TransitionTerminal",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+) '{'
+ {
+ createLeafNode(grammarAccess.getCPBranchTransitionAccess().getLeftCurlyBracketKeyword_6(), null);
+ }
+ 'cond'
+ {
+ createLeafNode(grammarAccess.getCPBranchTransitionAccess().getCondKeyword_7(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getCPBranchTransitionAccess().getConditionDetailCodeParserRuleCall_8_0(), currentNode);
+ }
+ lv_condition_8_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getCPBranchTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "condition",
+ lv_condition_8_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)( 'action'
+ {
+ createLeafNode(grammarAccess.getCPBranchTransitionAccess().getActionKeyword_9_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getCPBranchTransitionAccess().getActionDetailCodeParserRuleCall_9_1_0(), currentNode);
+ }
+ lv_action_10_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getCPBranchTransitionRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "action",
+ lv_action_10_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))? '}'
+ {
+ createLeafNode(grammarAccess.getCPBranchTransitionAccess().getRightCurlyBracketKeyword_10(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTransitionTerminal
+entryRuleTransitionTerminal returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTransitionTerminalRule(), currentNode); }
+ iv_ruleTransitionTerminal=ruleTransitionTerminal
+ { $current=$iv_ruleTransitionTerminal.current; }
+ EOF
+;
+
+// Rule TransitionTerminal
+ruleTransitionTerminal returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTransitionTerminalAccess().getStateTerminalParserRuleCall_0(), currentNode);
+ }
+ this_StateTerminal_0=ruleStateTerminal
+ {
+ $current = $this_StateTerminal_0.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getTransitionTerminalAccess().getTrPointTerminalParserRuleCall_1(), currentNode);
+ }
+ this_TrPointTerminal_1=ruleTrPointTerminal
+ {
+ $current = $this_TrPointTerminal_1.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getTransitionTerminalAccess().getSubStateTrPointTerminalParserRuleCall_2(), currentNode);
+ }
+ this_SubStateTrPointTerminal_2=ruleSubStateTrPointTerminal
+ {
+ $current = $this_SubStateTrPointTerminal_2.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode(grammarAccess.getTransitionTerminalAccess().getChoicepointTerminalParserRuleCall_3(), currentNode);
+ }
+ this_ChoicepointTerminal_3=ruleChoicepointTerminal
+ {
+ $current = $this_ChoicepointTerminal_3.current;
+ currentNode = currentNode.getParent();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStateTerminal
+entryRuleStateTerminal returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getStateTerminalRule(), currentNode); }
+ iv_ruleStateTerminal=ruleStateTerminal
+ { $current=$iv_ruleStateTerminal.current; }
+ EOF
+;
+
+// Rule StateTerminal
+ruleStateTerminal returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getStateTerminalRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getStateTerminalAccess().getStateBaseStateCrossReference_0(), "state");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTrPointTerminal
+entryRuleTrPointTerminal returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTrPointTerminalRule(), currentNode); }
+ iv_ruleTrPointTerminal=ruleTrPointTerminal
+ { $current=$iv_ruleTrPointTerminal.current; }
+ EOF
+;
+
+// Rule TrPointTerminal
+ruleTrPointTerminal returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'my'
+ {
+ createLeafNode(grammarAccess.getTrPointTerminalAccess().getMyKeyword_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTrPointTerminalRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getTrPointTerminalAccess().getTrPointTrPointCrossReference_1_0(), "trPoint");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSubStateTrPointTerminal
+entryRuleSubStateTrPointTerminal returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getSubStateTrPointTerminalRule(), currentNode); }
+ iv_ruleSubStateTrPointTerminal=ruleSubStateTrPointTerminal
+ { $current=$iv_ruleSubStateTrPointTerminal.current; }
+ EOF
+;
+
+// Rule SubStateTrPointTerminal
+ruleSubStateTrPointTerminal returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubStateTrPointTerminalRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getSubStateTrPointTerminalAccess().getTrPointTrPointCrossReference_0_0(), "trPoint");
+ }
+
+)
+) 'of'
+ {
+ createLeafNode(grammarAccess.getSubStateTrPointTerminalAccess().getOfKeyword_1(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getSubStateTrPointTerminalRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getSubStateTrPointTerminalAccess().getStateBaseStateCrossReference_2_0(), "state");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleChoicepointTerminal
+entryRuleChoicepointTerminal returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getChoicepointTerminalRule(), currentNode); }
+ iv_ruleChoicepointTerminal=ruleChoicepointTerminal
+ { $current=$iv_ruleChoicepointTerminal.current; }
+ EOF
+;
+
+// Rule ChoicepointTerminal
+ruleChoicepointTerminal returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'cp'
+ {
+ createLeafNode(grammarAccess.getChoicepointTerminalAccess().getCpKeyword_0(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getChoicepointTerminalRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getChoicepointTerminalAccess().getCpChoicePointCrossReference_1_0(), "cp");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTrigger
+entryRuleTrigger returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getTriggerRule(), currentNode); }
+ iv_ruleTrigger=ruleTrigger
+ { $current=$iv_ruleTrigger.current; }
+ EOF
+;
+
+// Rule Trigger
+ruleTrigger returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( '<'
+ {
+ createLeafNode(grammarAccess.getTriggerAccess().getLessThanSignKeyword_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTriggerAccess().getMsgFromIfPairsMessageFromIfParserRuleCall_1_0(), currentNode);
+ }
+ lv_msgFromIfPairs_1_0=ruleMessageFromIf {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggerRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "msgFromIfPairs",
+ lv_msgFromIfPairs_1_0,
+ "MessageFromIf",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)( '|'
+ {
+ createLeafNode(grammarAccess.getTriggerAccess().getVerticalLineKeyword_2_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTriggerAccess().getMsgFromIfPairsMessageFromIfParserRuleCall_2_1_0(), currentNode);
+ }
+ lv_msgFromIfPairs_3_0=ruleMessageFromIf {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggerRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ add(
+ $current,
+ "msgFromIfPairs",
+ lv_msgFromIfPairs_3_0,
+ "MessageFromIf",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))*(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getTriggerAccess().getGuardGuardParserRuleCall_3_0(), currentNode);
+ }
+ lv_guard_4_0=ruleGuard {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getTriggerRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "guard",
+ lv_guard_4_0,
+ "Guard",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+)? '>'
+ {
+ createLeafNode(grammarAccess.getTriggerAccess().getGreaterThanSignKeyword_4(), null);
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleMessageFromIf
+entryRuleMessageFromIf returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getMessageFromIfRule(), currentNode); }
+ iv_ruleMessageFromIf=ruleMessageFromIf
+ { $current=$iv_ruleMessageFromIf.current; }
+ EOF
+;
+
+// Rule MessageFromIf
+ruleMessageFromIf returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+((
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getMessageFromIfRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getMessageFromIfAccess().getMessageMessageCrossReference_0_0(), "message");
+ }
+
+)
+) ':'
+ {
+ createLeafNode(grammarAccess.getMessageFromIfAccess().getColonKeyword_1(), null);
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getMessageFromIfRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+ RULE_ID
+ {
+ createLeafNode(grammarAccess.getMessageFromIfAccess().getFromInterfaceItemCrossReference_2_0(), "from");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleGuard
+entryRuleGuard returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getGuardRule(), currentNode); }
+ iv_ruleGuard=ruleGuard
+ { $current=$iv_ruleGuard.current; }
+ EOF
+;
+
+// Rule Guard
+ruleGuard returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'guard'
+ {
+ createLeafNode(grammarAccess.getGuardAccess().getGuardKeyword_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getGuardAccess().getGuardDetailCodeParserRuleCall_1_0(), currentNode);
+ }
+ lv_guard_1_0=ruleDetailCode {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getGuardRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "guard",
+ lv_guard_1_0,
+ "DetailCode",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleImport
+entryRuleImport returns [EObject current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getImportRule(), currentNode); }
+ iv_ruleImport=ruleImport
+ { $current=$iv_ruleImport.current; }
+ EOF
+;
+
+// Rule Import
+ruleImport returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( 'import'
+ {
+ createLeafNode(grammarAccess.getImportAccess().getImportKeyword_0(), null);
+ }
+(
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getImportAccess().getImportedNamespaceImportedFQNParserRuleCall_1_0(), currentNode);
+ }
+ lv_importedNamespace_1_0=ruleImportedFQN {
+ if ($current==null) {
+ $current = factory.create(grammarAccess.getImportRule().getType().getClassifier());
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+ try {
+ set(
+ $current,
+ "importedNamespace",
+ lv_importedNamespace_1_0,
+ "ImportedFQN",
+ currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleImportedFQN
+entryRuleImportedFQN returns [String current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getImportedFQNRule(), currentNode); }
+ iv_ruleImportedFQN=ruleImportedFQN
+ { $current=$iv_ruleImportedFQN.current.getText(); }
+ EOF
+;
+
+// Rule ImportedFQN
+ruleImportedFQN returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(
+ {
+ currentNode=createCompositeNode(grammarAccess.getImportedFQNAccess().getFQNParserRuleCall_0(), currentNode);
+ }
+ this_FQN_0=ruleFQN {
+ $current.merge(this_FQN_0);
+ }
+
+ {
+ currentNode = currentNode.getParent();
+ }
+(
+ kw='.'
+ {
+ $current.merge(kw);
+ createLeafNode(grammarAccess.getImportedFQNAccess().getFullStopKeyword_1_0(), null);
+ }
+
+ kw='*'
+ {
+ $current.merge(kw);
+ createLeafNode(grammarAccess.getImportedFQNAccess().getAsteriskKeyword_1_1(), null);
+ }
+)?)
+ ;
+
+
+
+
+
+// Entry rule entryRuleFQN
+entryRuleFQN returns [String current=null]
+ :
+ { currentNode = createCompositeNode(grammarAccess.getFQNRule(), currentNode); }
+ iv_ruleFQN=ruleFQN
+ { $current=$iv_ruleFQN.current.getText(); }
+ EOF
+;
+
+// Rule FQN
+ruleFQN returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+( this_ID_0=RULE_ID {
+ $current.merge(this_ID_0);
+ }
+
+ {
+ createLeafNode(grammarAccess.getFQNAccess().getIDTerminalRuleCall_0(), null);
+ }
+(
+ kw='.'
+ {
+ $current.merge(kw);
+ createLeafNode(grammarAccess.getFQNAccess().getFullStopKeyword_1_0(), null);
+ }
+ this_ID_2=RULE_ID {
+ $current.merge(this_ID_2);
+ }
+
+ {
+ createLeafNode(grammarAccess.getFQNAccess().getIDTerminalRuleCall_1_1(), null);
+ }
+)*)
+ ;
+
+
+
+
+
+// Rule PrimitiveType
+rulePrimitiveType returns [Enumerator current=null]
+ @init { setCurrentLookahead(); resetLookahead(); }
+ @after { resetLookahead();
+ lastConsumedNode = currentNode;
+ }:
+(( 'void'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getVoidEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getVoidEnumLiteralDeclaration_0(), null);
+ }
+)
+ |( 'int8'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getInt8EnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getInt8EnumLiteralDeclaration_1(), null);
+ }
+)
+ |( 'int16'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getInt16EnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getInt16EnumLiteralDeclaration_2(), null);
+ }
+)
+ |( 'int32'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getInt32EnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getInt32EnumLiteralDeclaration_3(), null);
+ }
+)
+ |( 'uint8'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getUint8EnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getUint8EnumLiteralDeclaration_4(), null);
+ }
+)
+ |( 'uint16'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getUint16EnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getUint16EnumLiteralDeclaration_5(), null);
+ }
+)
+ |( 'uint32'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getUint32EnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getUint32EnumLiteralDeclaration_6(), null);
+ }
+)
+ |( 'float32'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getFloat32EnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getFloat32EnumLiteralDeclaration_7(), null);
+ }
+)
+ |( 'float64'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getFloat64EnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getFloat64EnumLiteralDeclaration_8(), null);
+ }
+)
+ |( 'boolean'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getBooleanEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getBooleanEnumLiteralDeclaration_9(), null);
+ }
+)
+ |( 'string'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getStringEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getStringEnumLiteralDeclaration_10(), null);
+ }
+)
+ |( 'char'
+ {
+ $current = grammarAccess.getPrimitiveTypeAccess().getCharEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
+ createLeafNode(grammarAccess.getPrimitiveTypeAccess().getCharEnumLiteralDeclaration_11(), null);
+ }
+));
+
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+

Back to the top