diff options
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.g | 6227 |
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 : .; + + |