/*****************************************************************************
* Copyright (c) 2018 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*  Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr
*  - Initial API and implementation
*****************************************************************************/
package org.eclipse.efm.formalml.xtext.serializer;

import com.google.inject.Inject;
import java.util.List;
import org.eclipse.efm.formalml.xtext.services.FormalMLGrammarAccess;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.IGrammarAccess;
import org.eclipse.xtext.RuleCall;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
import org.eclipse.xtext.serializer.analysis.GrammarAlias.AlternativeAlias;
import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;

@SuppressWarnings("all")
public class FormalMLSyntacticSequencer extends AbstractSyntacticSequencer {

	protected FormalMLGrammarAccess grammarAccess;
	protected AbstractElementAlias match_BaseExpression_LeftParenthesisKeyword_1_0_a;
	protected AbstractElementAlias match_BaseExpression_LeftParenthesisKeyword_1_0_p;
	protected AbstractElementAlias match_BehaviorPart_BehaviorKeyword_1_0_0_q;
	protected AbstractElementAlias match_BehaviorPart_StatemachineKeyword_1_1_0_q;
	protected AbstractElementAlias match_BlockParameterSet___RightCurlyBracketKeyword_1_0_1_1_2_InputKeyword_1_0_0_LeftCurlyBracketKeyword_1_0_1_1_0__q;
	protected AbstractElementAlias match_BlockParameterSet___RightCurlyBracketKeyword_1_1_1_1_2_InoutKeyword_1_1_0_LeftCurlyBracketKeyword_1_1_1_1_0__q;
	protected AbstractElementAlias match_BlockParameterSet___RightCurlyBracketKeyword_1_2_1_1_2_OutputKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_1_1_0__q;
	protected AbstractElementAlias match_BlockParameterSet___RightCurlyBracketKeyword_1_3_1_1_2_ReturnKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_1_1_0__q;
	protected AbstractElementAlias match_BufferContainerType_SizeKeyword_2_0_1_0_0_q;
	protected AbstractElementAlias match_BufferContainerType_SizeKeyword_2_1_1_0_0_q;
	protected AbstractElementAlias match_BufferContainerType_____LeftSquareBracketKeyword_2_1_0_RightSquareBracketKeyword_2_1_2___or___LessThanSignKeyword_2_0_0_GreaterThanSignKeyword_2_0_2____q;
	protected AbstractElementAlias match_ChoiceTypeDefinitionImpl_PropertyKeyword_5_q;
	protected AbstractElementAlias match_ChoiceTypeDefinition_PropertyKeyword_7_q;
	protected AbstractElementAlias match_ChoiceType_PropertyKeyword_3_q;
	protected AbstractElementAlias match_CollectionFunctionExpression_EmptyKeyword_0_0_or_NonemptyKeyword_1_0_or_SizeKeyword_2_0;
	protected AbstractElementAlias match_ComBufferRef_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1;
	protected AbstractElementAlias match_ComPoint_FullStopKeyword_1_1_1_or_HyphenMinusGreaterThanSignKeyword_1_1_0;
	protected AbstractElementAlias match_CompositePart_CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1;
	protected AbstractElementAlias match_CompositePart_MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0;
	protected AbstractElementAlias match_CompositePart_ModelKeyword_2_1_0_q;
	protected AbstractElementAlias match_CompositePart_ProcedureKeyword_1_0_1_0_q;
	protected AbstractElementAlias match_CompositePart___InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a;
	protected AbstractElementAlias match_CompositePart___MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0__q;
	protected AbstractElementAlias match_CompositePart___ModelKeyword_2_1_0_q_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a___CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1____q;
	protected AbstractElementAlias match_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__a;
	protected AbstractElementAlias match_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__p;
	protected AbstractElementAlias match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__a;
	protected AbstractElementAlias match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__p;
	protected AbstractElementAlias match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a;
	protected AbstractElementAlias match_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__a;
	protected AbstractElementAlias match_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__p;
	protected AbstractElementAlias match_CompositeState_MocKeyword_3_q;
	protected AbstractElementAlias match_CompositeState_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_TransitionKeyword_8_0_1_0_2_0_a_RightCurlyBracketKeyword_8_0_2__;
	protected AbstractElementAlias match_CompositeState_TransitionKeyword_8_0_1_0_2_0_a;
	protected AbstractElementAlias match_CompositeState_TransitionKeyword_8_0_1_0_2_0_p;
	protected AbstractElementAlias match_Connector_ConnectKeyword_0_1_or_ConnectorKeyword_0_0;
	protected AbstractElementAlias match_DynamicInstanceSpecification___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_2__q;
	protected AbstractElementAlias match_DynamicInstanceSpecification___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q;
	protected AbstractElementAlias match_ElseIfStatement_ElseifKeyword_0_0_or___ElseKeyword_0_1_0_IfKeyword_0_1_1__;
	protected AbstractElementAlias match_EndingPseudostate_MocKeyword_3_q;
	protected AbstractElementAlias match_EndingPseudostate_MoeKeyword_8_0_1_0_q;
	protected AbstractElementAlias match_EndingPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0;
	protected AbstractElementAlias match_EndingPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__;
	protected AbstractElementAlias match_FinalState_MocKeyword_1_0_2_q;
	protected AbstractElementAlias match_FinalState_MoeKeyword_3_0_1_0_q;
	protected AbstractElementAlias match_FinalState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__;
	protected AbstractElementAlias match_FormalParameter_FormalParameterOffsetParserRuleCall_1_q;
	protected AbstractElementAlias match_FunctionImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q;
	protected AbstractElementAlias match_Function___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q;
	protected AbstractElementAlias match_InputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1;
	protected AbstractElementAlias match_InstanceMachine_ModelKeyword_3_q;
	protected AbstractElementAlias match_InstanceMachine_SemicolonKeyword_9_1_or___LeftCurlyBracketKeyword_9_0_0_RightCurlyBracketKeyword_9_0_2__;
	protected AbstractElementAlias match_InstanceMachine___LeftParenthesisKeyword_8_0_RightParenthesisKeyword_8_2__q;
	protected AbstractElementAlias match_InstanceMachine___MachineKeyword_1_0_or_StatemachineKeyword_1_1__q;
	protected AbstractElementAlias match_LiteralParentExpression_ModelKeyword_2_1_q;
	protected AbstractElementAlias match_LiteralPureReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q;
	protected AbstractElementAlias match_LiteralReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q;
	protected AbstractElementAlias match_LiteralReferenceSpecification_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1;
	protected AbstractElementAlias match_LiteralSelfExpression_ModelKeyword_2_1_q;
	protected AbstractElementAlias match_LiteralSuperExpression_ModelKeyword_2_1_q;
	protected AbstractElementAlias match_LiteralTimeDeltaExpression_LiteralTimeDeltaInitialExpression_DeltaInitialKeyword_1_or_DeltaKeyword_1;
	protected AbstractElementAlias match_LiteralTimeExpression_LiteralTimeInitialExpression_TimeInitialKeyword_1_or_TimeKeyword_1;
	protected AbstractElementAlias match_LogicalAndExpression_AmpersandAmpersandKeyword_1_3_0_0_or_AndKeyword_1_3_0_1;
	protected AbstractElementAlias match_LogicalOrExpression_OrKeyword_1_3_0_1_or_VerticalLineVerticalLineKeyword_1_3_0_0;
	protected AbstractElementAlias match_MachineBlock_BehaviorKeyword_10_0_0_q;
	protected AbstractElementAlias match_MachineBlock_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1;
	protected AbstractElementAlias match_MachineBlock_ExecutableKeyword_1_1_or_MachineKeyword_1_0;
	protected AbstractElementAlias match_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0;
	protected AbstractElementAlias match_MachineBlock_ProcedureKeyword_8_0_1_0_q;
	protected AbstractElementAlias match_MachineBlock_PublicKeyword_7_1_0_q;
	protected AbstractElementAlias match_MachineBlock_StatemachineKeyword_10_1_0_q;
	protected AbstractElementAlias match_MachineBlock___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a;
	protected AbstractElementAlias match_MachineBlock___LessThanSignKeyword_2_0___MocKeyword_2_1_0_q_ModelOfComputationKingParserRuleCall_2_1_1__q___InstanceKeyword_2_2_0_LeftSquareBracketKeyword_2_2_1___AsteriskKeyword_2_2_2_1_or_PlusSignKeyword_2_2_2_0_or___InitKeyword_2_2_2_2_0_EIntegerParserRuleCall_2_2_2_2_1_MaxKeyword_2_2_2_2_2_EIntegerParserRuleCall_2_2_2_2_3_____RightSquareBracketKeyword_2_2_3__q_GreaterThanSignKeyword_2_3__q;
	protected AbstractElementAlias match_MachineBlock___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q;
	protected AbstractElementAlias match_MachineBlock___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a;
	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a;
	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p;
	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q;
	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a;
	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p;
	protected AbstractElementAlias match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a;
	protected AbstractElementAlias match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p;
	protected AbstractElementAlias match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a;
	protected AbstractElementAlias match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p;
	protected AbstractElementAlias match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__q_PublicKeyword_7_1_0_q__a;
	protected AbstractElementAlias match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a;
	protected AbstractElementAlias match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p;
	protected AbstractElementAlias match_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a;
	protected AbstractElementAlias match_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p;
	protected AbstractElementAlias match_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a;
	protected AbstractElementAlias match_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p;
	protected AbstractElementAlias match_MoeBehavior_LocalKeyword_1_0_q;
	protected AbstractElementAlias match_NamedExpression_ColonKeyword_1_0_or_EqualsSignGreaterThanSignKeyword_1_1_or_LessThanSignHyphenMinusKeyword_1_2;
	protected AbstractElementAlias match_ObsInputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1;
	protected AbstractElementAlias match_ObsOutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1;
	protected AbstractElementAlias match_ObserverStatement_ObsKeyword_1_1_or_ObserveKeyword_1_0;
	protected AbstractElementAlias match_OnWriteRoutine_On_writeKeyword_1_1_or_WriteKeyword_1_0;
	protected AbstractElementAlias match_OtherPseudostate_MocKeyword_3_q;
	protected AbstractElementAlias match_OtherPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0;
	protected AbstractElementAlias match_OtherPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__;
	protected AbstractElementAlias match_OutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1;
	protected AbstractElementAlias match_PortImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q;
	protected AbstractElementAlias match_Port___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q;
	protected AbstractElementAlias match_PrimitiveFloatType_SizeKeyword_3_1_1_q;
	protected AbstractElementAlias match_PrimitiveIntegerType_SizeKeyword_3_1_1_q;
	protected AbstractElementAlias match_PrimitiveRationalType_SizeKeyword_3_1_1_q;
	protected AbstractElementAlias match_PrimitiveRealType_SizeKeyword_3_1_1_q;
	protected AbstractElementAlias match_PrimitiveStringType_SizeKeyword_2_1_1_q;
	protected AbstractElementAlias match_ProcedureExecution_MoeKeyword_1_q;
	protected AbstractElementAlias match_Procedure_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0;
	protected AbstractElementAlias match_Procedure_ParameterKeyword_7_0_0_q;
	protected AbstractElementAlias match_Procedure_ProcedureKeyword_10_0_1_0_q;
	protected AbstractElementAlias match_Procedure_PropertyKeyword_9_0_0_q;
	protected AbstractElementAlias match_Procedure_PublicKeyword_9_1_0_q;
	protected AbstractElementAlias match_Procedure___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a;
	protected AbstractElementAlias match_Procedure___LeftParenthesisKeyword_5_0_0_RightParenthesisKeyword_5_0_2__q;
	protected AbstractElementAlias match_Procedure___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q;
	protected AbstractElementAlias match_Procedure___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q;
	protected AbstractElementAlias match_Procedure___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a;
	protected AbstractElementAlias match_Procedure___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q;
	protected AbstractElementAlias match_Procedure___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q;
	protected AbstractElementAlias match_Procedure___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q;
	protected AbstractElementAlias match_Procedure___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q;
	protected AbstractElementAlias match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a;
	protected AbstractElementAlias match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p;
	protected AbstractElementAlias match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a;
	protected AbstractElementAlias match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p;
	protected AbstractElementAlias match_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a;
	protected AbstractElementAlias match_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p;
	protected AbstractElementAlias match_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a;
	protected AbstractElementAlias match_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p;
	protected AbstractElementAlias match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a;
	protected AbstractElementAlias match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p;
	protected AbstractElementAlias match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a;
	protected AbstractElementAlias match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a;
	protected AbstractElementAlias match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p;
	protected AbstractElementAlias match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a;
	protected AbstractElementAlias match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p;
	protected AbstractElementAlias match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a;
	protected AbstractElementAlias match_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a;
	protected AbstractElementAlias match_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p;
	protected AbstractElementAlias match_PropertyPart_ParameterKeyword_1_0_0_q;
	protected AbstractElementAlias match_PropertyPart_PropertyKeyword_3_0_0_q;
	protected AbstractElementAlias match_PropertyPart_PublicKeyword_3_1_0_q;
	protected AbstractElementAlias match_PropertyPart___InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a;
	protected AbstractElementAlias match_PropertyPart___PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a;
	protected AbstractElementAlias match_PropertyPart___RightCurlyBracketKeyword_1_0_1_0_1_1_2_InputKeyword_1_0_1_0_0_LeftCurlyBracketKeyword_1_0_1_0_1_1_0__q;
	protected AbstractElementAlias match_PropertyPart___RightCurlyBracketKeyword_1_0_1_1_1_1_2_InoutKeyword_1_0_1_1_0_LeftCurlyBracketKeyword_1_0_1_1_1_1_0__q;
	protected AbstractElementAlias match_PropertyPart___RightCurlyBracketKeyword_1_0_1_2_1_1_2_OutputKeyword_1_0_1_2_0_LeftCurlyBracketKeyword_1_0_1_2_1_1_0__q;
	protected AbstractElementAlias match_PropertyPart___RightCurlyBracketKeyword_1_0_1_3_1_1_2_ReturnKeyword_1_0_1_3_0_LeftCurlyBracketKeyword_1_0_1_3_1_1_0__q;
	protected AbstractElementAlias match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__a;
	protected AbstractElementAlias match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__p;
	protected AbstractElementAlias match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__a;
	protected AbstractElementAlias match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__p;
	protected AbstractElementAlias match_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__a;
	protected AbstractElementAlias match_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__p;
	protected AbstractElementAlias match_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__a;
	protected AbstractElementAlias match_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__p;
	protected AbstractElementAlias match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__a;
	protected AbstractElementAlias match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__p;
	protected AbstractElementAlias match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__q_PublicKeyword_3_1_0_q__a;
	protected AbstractElementAlias match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__a;
	protected AbstractElementAlias match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__p;
	protected AbstractElementAlias match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__a;
	protected AbstractElementAlias match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__p;
	protected AbstractElementAlias match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__q_PropertyKeyword_3_0_0_q__a;
	protected AbstractElementAlias match_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__a;
	protected AbstractElementAlias match_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__p;
	protected AbstractElementAlias match_PseudostateInitial_MocKeyword_1_0_2_q;
	protected AbstractElementAlias match_PseudostateInitial_PseudostateKeyword_1_0_0_1_or_StateKeyword_1_0_0_0;
	protected AbstractElementAlias match_PseudostateInitial_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_TransitionKeyword_3_0_1_0_q_RightCurlyBracketKeyword_3_0_2__;
	protected AbstractElementAlias match_PseudostateInitial_TransitionKeyword_3_0_1_0_q;
	protected AbstractElementAlias match_Routine_DesignDebugTraceParserRuleCall_2_a;
	protected AbstractElementAlias match_Routine___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_2__q;
	protected AbstractElementAlias match_SignalImpl___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q;
	protected AbstractElementAlias match_Signal___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q;
	protected AbstractElementAlias match_SimpleState_SemicolonKeyword_5_1_or___LeftCurlyBracketKeyword_5_0_0_RightCurlyBracketKeyword_5_0_2__;
	protected AbstractElementAlias match_SimpleState___LessThanSignKeyword_2_0_MocKeyword_2_1_q_SimpleKeyword_2_2_GreaterThanSignKeyword_2_3__q;
	protected AbstractElementAlias match_SlotParameter_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_0_or_EqualsSignKeyword_1_1;
	protected AbstractElementAlias match_SlotProperty_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_1_or_EqualsSignKeyword_1_0;
	protected AbstractElementAlias match_StartState_MocKeyword_1_0_2_q;
	protected AbstractElementAlias match_StartState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__;
	protected AbstractElementAlias match_StatemachineNamedRegion___IdKeyword_2_0_or_NameKeyword_2_1__q;
	protected AbstractElementAlias match_StatemachineRegion_RegionKeyword_1_1_or_StateKeyword_1_0;
	protected AbstractElementAlias match_Statemachine_InoutKeyword_8_1_0_q;
	protected AbstractElementAlias match_Statemachine_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0;
	protected AbstractElementAlias match_Statemachine_OutputKeyword_8_2_0_q;
	protected AbstractElementAlias match_Statemachine_ParameterKeyword_7_0_0_q;
	protected AbstractElementAlias match_Statemachine_ProcedureKeyword_10_0_1_0_q;
	protected AbstractElementAlias match_Statemachine_PropertyKeyword_9_0_0_q;
	protected AbstractElementAlias match_Statemachine_PublicKeyword_9_1_0_q;
	protected AbstractElementAlias match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a;
	protected AbstractElementAlias match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p;
	protected AbstractElementAlias match_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a;
	protected AbstractElementAlias match_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q;
	protected AbstractElementAlias match_Statemachine___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q;
	protected AbstractElementAlias match_Statemachine___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a;
	protected AbstractElementAlias match_Statemachine___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q;
	protected AbstractElementAlias match_Statemachine___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q;
	protected AbstractElementAlias match_Statemachine___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q;
	protected AbstractElementAlias match_Statemachine___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q;
	protected AbstractElementAlias match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__a;
	protected AbstractElementAlias match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__p;
	protected AbstractElementAlias match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_StatemachineKeyword_11_0_0_0__q;
	protected AbstractElementAlias match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__a;
	protected AbstractElementAlias match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__p;
	protected AbstractElementAlias match_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__a;
	protected AbstractElementAlias match_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__p;
	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a;
	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p;
	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a;
	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p;
	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__q_OutputKeyword_8_2_0_q__a;
	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a;
	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p;
	protected AbstractElementAlias match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a;
	protected AbstractElementAlias match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p;
	protected AbstractElementAlias match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InoutKeyword_8_1_0_q__a;
	protected AbstractElementAlias match_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__a;
	protected AbstractElementAlias match_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__p;
	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a;
	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p;
	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a;
	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a;
	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p;
	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a;
	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p;
	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a;
	protected AbstractElementAlias match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a;
	protected AbstractElementAlias match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p;
	protected AbstractElementAlias match_StructureTypeDefinitionImpl_PropertyKeyword_5_q;
	protected AbstractElementAlias match_StructureTypeDefinition_PropertyKeyword_7_q;
	protected AbstractElementAlias match_StructureType_PropertyKeyword_3_q;
	protected AbstractElementAlias match_TransitionMoe_MocKeyword_1_0_0_q;
	protected AbstractElementAlias match_TransitionMoe_PriorKeyword_1_0_2_1_q;
	protected AbstractElementAlias match_TransitionMoe_PriorKeyword_1_1_0_q;
	protected AbstractElementAlias match_Transition_GuardKeyword_6_0_1_0_1_1_q;
	protected AbstractElementAlias match_Transition_GuardKeyword_6_1_2_0_1_0_1_1_q;
	protected AbstractElementAlias match_Transition_SemicolonKeyword_6_1_2_1_or___LeftCurlyBracketKeyword_6_1_2_0_0___TriggerKeyword_6_1_2_0_1_0_0_0_q_GuardKeyword_6_1_2_0_1_0_1_1_q_TguardKeyword_6_1_2_0_1_0_2_1_q_EffectKeyword_6_1_2_0_1_0_3__q_RightCurlyBracketKeyword_6_1_2_0_2__;
	protected AbstractElementAlias match_Transition_TguardKeyword_6_0_1_0_2_1_q;
	protected AbstractElementAlias match_Transition_TguardKeyword_6_1_2_0_1_0_2_1_q;
	protected AbstractElementAlias match_Transition_TriggerKeyword_6_0_1_0_0_0_q;
	protected AbstractElementAlias match_Transition_TriggerKeyword_6_1_2_0_1_0_0_0_q;
	protected AbstractElementAlias match_Transition___TriggerKeyword_6_0_1_0_0_0_q_GuardKeyword_6_0_1_0_1_1_q_TguardKeyword_6_0_1_0_2_1_q_EffectKeyword_6_0_1_0_3__q;
	protected AbstractElementAlias match_UnionTypeDefinitionImpl_PropertyKeyword_5_q;
	protected AbstractElementAlias match_UnionTypeDefinition_PropertyKeyword_7_q;
	protected AbstractElementAlias match_UnionType_PropertyKeyword_3_q;
	protected AbstractElementAlias match_VariableImpl_VarKeyword_1_2_2_q;
	protected AbstractElementAlias match_VariableImpl_VarKeyword_1_3_1_0_q;
	protected AbstractElementAlias match_VariableRoutineParameter_FormalParameterOffsetParserRuleCall_0_q;
	protected AbstractElementAlias match_Variable_VarKeyword_1_2_2_q;
	protected AbstractElementAlias match_Variable_VarKeyword_1_3_1_0_q;
	protected AbstractElementAlias match_XliaPrologAttribute_VersionKeyword_1_1_q;
	protected AbstractElementAlias match_XliaSystem_BehaviorKeyword_10_0_0_q;
	protected AbstractElementAlias match_XliaSystem_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1;
	protected AbstractElementAlias match_XliaSystem_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0;
	protected AbstractElementAlias match_XliaSystem_ModelKeyword_9_1_0_q;
	protected AbstractElementAlias match_XliaSystem_ProcedureKeyword_8_0_1_0_q;
	protected AbstractElementAlias match_XliaSystem_PrototypeKeyword_9_2_0_q;
	protected AbstractElementAlias match_XliaSystem_StatemachineKeyword_10_1_0_q;
	protected AbstractElementAlias match_XliaSystem___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a;
	protected AbstractElementAlias match_XliaSystem___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q;
	protected AbstractElementAlias match_XliaSystem___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q;
	protected AbstractElementAlias match_XliaSystem___ModelKeyword_9_1_0_q_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q;
	protected AbstractElementAlias match_XliaSystem___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a;
	protected AbstractElementAlias match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a;
	protected AbstractElementAlias match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p;
	protected AbstractElementAlias match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a;
	protected AbstractElementAlias match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a;
	protected AbstractElementAlias match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p;
	protected AbstractElementAlias match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a;
	protected AbstractElementAlias match_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a;
	protected AbstractElementAlias match_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p;
	protected AbstractElementAlias match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a;
	protected AbstractElementAlias match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p;
	protected AbstractElementAlias match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a;
	protected AbstractElementAlias match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p;
	protected AbstractElementAlias match_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a;
	protected AbstractElementAlias match_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p;
	protected AbstractElementAlias match_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a;
	protected AbstractElementAlias match_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p;
	protected AbstractElementAlias match_moeRoutine___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q;
	
	@Inject
	protected void init(IGrammarAccess access) {
		grammarAccess = (FormalMLGrammarAccess) access;
		match_BaseExpression_LeftParenthesisKeyword_1_0_a = new TokenAlias(true, true, grammarAccess.getBaseExpressionAccess().getLeftParenthesisKeyword_1_0());
		match_BaseExpression_LeftParenthesisKeyword_1_0_p = new TokenAlias(true, false, grammarAccess.getBaseExpressionAccess().getLeftParenthesisKeyword_1_0());
		match_BehaviorPart_BehaviorKeyword_1_0_0_q = new TokenAlias(false, true, grammarAccess.getBehaviorPartAccess().getBehaviorKeyword_1_0_0());
		match_BehaviorPart_StatemachineKeyword_1_1_0_q = new TokenAlias(false, true, grammarAccess.getBehaviorPartAccess().getStatemachineKeyword_1_1_0());
		match_BlockParameterSet___RightCurlyBracketKeyword_1_0_1_1_2_InputKeyword_1_0_0_LeftCurlyBracketKeyword_1_0_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getRightCurlyBracketKeyword_1_0_1_1_2()), new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getInputKeyword_1_0_0()), new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getLeftCurlyBracketKeyword_1_0_1_1_0()));
		match_BlockParameterSet___RightCurlyBracketKeyword_1_1_1_1_2_InoutKeyword_1_1_0_LeftCurlyBracketKeyword_1_1_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getRightCurlyBracketKeyword_1_1_1_1_2()), new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getInoutKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getLeftCurlyBracketKeyword_1_1_1_1_0()));
		match_BlockParameterSet___RightCurlyBracketKeyword_1_2_1_1_2_OutputKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getRightCurlyBracketKeyword_1_2_1_1_2()), new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getOutputKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getLeftCurlyBracketKeyword_1_2_1_1_0()));
		match_BlockParameterSet___RightCurlyBracketKeyword_1_3_1_1_2_ReturnKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getRightCurlyBracketKeyword_1_3_1_1_2()), new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getReturnKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getBlockParameterSetAccess().getLeftCurlyBracketKeyword_1_3_1_1_0()));
		match_BufferContainerType_SizeKeyword_2_0_1_0_0_q = new TokenAlias(false, true, grammarAccess.getBufferContainerTypeAccess().getSizeKeyword_2_0_1_0_0());
		match_BufferContainerType_SizeKeyword_2_1_1_0_0_q = new TokenAlias(false, true, grammarAccess.getBufferContainerTypeAccess().getSizeKeyword_2_1_1_0_0());
		match_BufferContainerType_____LeftSquareBracketKeyword_2_1_0_RightSquareBracketKeyword_2_1_2___or___LessThanSignKeyword_2_0_0_GreaterThanSignKeyword_2_0_2____q = new AlternativeAlias(false, true, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getBufferContainerTypeAccess().getLeftSquareBracketKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getBufferContainerTypeAccess().getRightSquareBracketKeyword_2_1_2())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getBufferContainerTypeAccess().getLessThanSignKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getBufferContainerTypeAccess().getGreaterThanSignKeyword_2_0_2())));
		match_ChoiceTypeDefinitionImpl_PropertyKeyword_5_q = new TokenAlias(false, true, grammarAccess.getChoiceTypeDefinitionImplAccess().getPropertyKeyword_5());
		match_ChoiceTypeDefinition_PropertyKeyword_7_q = new TokenAlias(false, true, grammarAccess.getChoiceTypeDefinitionAccess().getPropertyKeyword_7());
		match_ChoiceType_PropertyKeyword_3_q = new TokenAlias(false, true, grammarAccess.getChoiceTypeAccess().getPropertyKeyword_3());
		match_CollectionFunctionExpression_EmptyKeyword_0_0_or_NonemptyKeyword_1_0_or_SizeKeyword_2_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getCollectionFunctionExpressionAccess().getEmptyKeyword_0_0()), new TokenAlias(false, false, grammarAccess.getCollectionFunctionExpressionAccess().getNonemptyKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getCollectionFunctionExpressionAccess().getSizeKeyword_2_0()));
		match_ComBufferRef_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getComBufferRefAccess().getFullStopKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getComBufferRefAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1()));
		match_ComPoint_FullStopKeyword_1_1_1_or_HyphenMinusGreaterThanSignKeyword_1_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getComPointAccess().getFullStopKeyword_1_1_1()), new TokenAlias(false, false, grammarAccess.getComPointAccess().getHyphenMinusGreaterThanSignKeyword_1_1_0()));
		match_CompositePart_CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getCompositeKeyword_2_0_0_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getMachineKeyword_2_0_0_1()));
		match_CompositePart_MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getMacroKeyword_1_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getRoutineKeyword_1_0_0_0_0()));
		match_CompositePart_ModelKeyword_2_1_0_q = new TokenAlias(false, true, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0());
		match_CompositePart_ProcedureKeyword_1_0_1_0_q = new TokenAlias(false, true, grammarAccess.getCompositePartAccess().getProcedureKeyword_1_0_1_0());
		match_CompositePart___InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0()));
		match_CompositePart___MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getMacroKeyword_1_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getRoutineKeyword_1_0_0_0_0()));
		match_CompositePart___ModelKeyword_2_1_0_q_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a___CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1____q = new GroupAlias(false, true, new TokenAlias(false, true, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0()), new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0())), new TokenAlias(false, true, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0())), new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getCompositeKeyword_2_0_0_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getMachineKeyword_2_0_0_1())));
		match_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0())), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0()));
		match_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0())), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0()));
		match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0())), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0()));
		match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0())), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0()));
		match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0())), new TokenAlias(false, true, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0()));
		match_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0())), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()));
		match_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getModelKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getPrototypeKeyword_2_2_0())), new TokenAlias(false, false, grammarAccess.getCompositePartAccess().getInstanceKeyword_2_3_0()));
		match_CompositeState_MocKeyword_3_q = new TokenAlias(false, true, grammarAccess.getCompositeStateAccess().getMocKeyword_3());
		match_CompositeState_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_TransitionKeyword_8_0_1_0_2_0_a_RightCurlyBracketKeyword_8_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getCompositeStateAccess().getLeftCurlyBracketKeyword_8_0_0()), new TokenAlias(true, true, grammarAccess.getCompositeStateAccess().getTransitionKeyword_8_0_1_0_2_0()), new TokenAlias(false, false, grammarAccess.getCompositeStateAccess().getRightCurlyBracketKeyword_8_0_2())), new TokenAlias(false, false, grammarAccess.getCompositeStateAccess().getSemicolonKeyword_8_1()));
		match_CompositeState_TransitionKeyword_8_0_1_0_2_0_a = new TokenAlias(true, true, grammarAccess.getCompositeStateAccess().getTransitionKeyword_8_0_1_0_2_0());
		match_CompositeState_TransitionKeyword_8_0_1_0_2_0_p = new TokenAlias(true, false, grammarAccess.getCompositeStateAccess().getTransitionKeyword_8_0_1_0_2_0());
		match_Connector_ConnectKeyword_0_1_or_ConnectorKeyword_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getConnectorAccess().getConnectKeyword_0_1()), new TokenAlias(false, false, grammarAccess.getConnectorAccess().getConnectorKeyword_0_0()));
		match_DynamicInstanceSpecification___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDynamicInstanceSpecificationAccess().getLeftCurlyBracketKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getDynamicInstanceSpecificationAccess().getRightCurlyBracketKeyword_4_2()));
		match_DynamicInstanceSpecification___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDynamicInstanceSpecificationAccess().getLeftParenthesisKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getDynamicInstanceSpecificationAccess().getRightParenthesisKeyword_3_2()));
		match_ElseIfStatement_ElseifKeyword_0_0_or___ElseKeyword_0_1_0_IfKeyword_0_1_1__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getElseIfStatementAccess().getElseKeyword_0_1_0()), new TokenAlias(false, false, grammarAccess.getElseIfStatementAccess().getIfKeyword_0_1_1())), new TokenAlias(false, false, grammarAccess.getElseIfStatementAccess().getElseifKeyword_0_0()));
		match_EndingPseudostate_MocKeyword_3_q = new TokenAlias(false, true, grammarAccess.getEndingPseudostateAccess().getMocKeyword_3());
		match_EndingPseudostate_MoeKeyword_8_0_1_0_q = new TokenAlias(false, true, grammarAccess.getEndingPseudostateAccess().getMoeKeyword_8_0_1_0());
		match_EndingPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getEndingPseudostateAccess().getPseudostateKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getEndingPseudostateAccess().getStateKeyword_1_0()));
		match_EndingPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getEndingPseudostateAccess().getLeftCurlyBracketKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getEndingPseudostateAccess().getRightCurlyBracketKeyword_8_0_2())), new TokenAlias(false, false, grammarAccess.getEndingPseudostateAccess().getSemicolonKeyword_8_1()));
		match_FinalState_MocKeyword_1_0_2_q = new TokenAlias(false, true, grammarAccess.getFinalStateAccess().getMocKeyword_1_0_2());
		match_FinalState_MoeKeyword_3_0_1_0_q = new TokenAlias(false, true, grammarAccess.getFinalStateAccess().getMoeKeyword_3_0_1_0());
		match_FinalState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getFinalStateAccess().getLeftCurlyBracketKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getFinalStateAccess().getRightCurlyBracketKeyword_3_0_2())), new TokenAlias(false, false, grammarAccess.getFinalStateAccess().getSemicolonKeyword_3_1()));
		match_FormalParameter_FormalParameterOffsetParserRuleCall_1_q = new TokenAlias(false, true, grammarAccess.getFormalParameterAccess().getFormalParameterOffsetParserRuleCall_1());
		match_FunctionImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getFunctionImplAccess().getLeftParenthesisKeyword_5_0()), new TokenAlias(false, false, grammarAccess.getFunctionImplAccess().getRightParenthesisKeyword_5_2()));
		match_Function___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getFunctionAccess().getLeftParenthesisKeyword_5_0()), new TokenAlias(false, false, grammarAccess.getFunctionAccess().getRightParenthesisKeyword_5_2()));
		match_InputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getInputComStatementAccess().getLessThanSignEqualsSignEqualsSignKeyword_3_1_0_0()), new TokenAlias(false, false, grammarAccess.getInputComStatementAccess().getViaKeyword_3_1_0_1()));
		match_InstanceMachine_ModelKeyword_3_q = new TokenAlias(false, true, grammarAccess.getInstanceMachineAccess().getModelKeyword_3());
		match_InstanceMachine_SemicolonKeyword_9_1_or___LeftCurlyBracketKeyword_9_0_0_RightCurlyBracketKeyword_9_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getInstanceMachineAccess().getLeftCurlyBracketKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getInstanceMachineAccess().getRightCurlyBracketKeyword_9_0_2())), new TokenAlias(false, false, grammarAccess.getInstanceMachineAccess().getSemicolonKeyword_9_1()));
		match_InstanceMachine___LeftParenthesisKeyword_8_0_RightParenthesisKeyword_8_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getInstanceMachineAccess().getLeftParenthesisKeyword_8_0()), new TokenAlias(false, false, grammarAccess.getInstanceMachineAccess().getRightParenthesisKeyword_8_2()));
		match_InstanceMachine___MachineKeyword_1_0_or_StatemachineKeyword_1_1__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getInstanceMachineAccess().getMachineKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getInstanceMachineAccess().getStatemachineKeyword_1_1()));
		match_LiteralParentExpression_ModelKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getLiteralParentExpressionAccess().getModelKeyword_2_1());
		match_LiteralPureReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getLiteralPureReferenceElementAccess().getColonColonKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getLiteralPureReferenceElementAccess().getSpecKeyword_1_0()));
		match_LiteralReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getLiteralReferenceElementAccess().getColonColonKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getLiteralReferenceElementAccess().getSpecKeyword_1_0()));
		match_LiteralReferenceSpecification_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getLiteralReferenceSpecificationAccess().getFullStopKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getLiteralReferenceSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1()));
		match_LiteralSelfExpression_ModelKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getLiteralSelfExpressionAccess().getModelKeyword_2_1());
		match_LiteralSuperExpression_ModelKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getLiteralSuperExpressionAccess().getModelKeyword_2_1());
		match_LiteralTimeDeltaExpression_LiteralTimeDeltaInitialExpression_DeltaInitialKeyword_1_or_DeltaKeyword_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getLiteralTimeDeltaExpressionAccess().getDeltaKeyword_1()), new TokenAlias(false, false, grammarAccess.getLiteralTimeDeltaInitialExpressionAccess().getDeltaInitialKeyword_1()));
		match_LiteralTimeExpression_LiteralTimeInitialExpression_TimeInitialKeyword_1_or_TimeKeyword_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getLiteralTimeExpressionAccess().getTimeKeyword_1()), new TokenAlias(false, false, grammarAccess.getLiteralTimeInitialExpressionAccess().getTimeInitialKeyword_1()));
		match_LogicalAndExpression_AmpersandAmpersandKeyword_1_3_0_0_or_AndKeyword_1_3_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getLogicalAndExpressionAccess().getAmpersandAmpersandKeyword_1_3_0_0()), new TokenAlias(false, false, grammarAccess.getLogicalAndExpressionAccess().getAndKeyword_1_3_0_1()));
		match_LogicalOrExpression_OrKeyword_1_3_0_1_or_VerticalLineVerticalLineKeyword_1_3_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getLogicalOrExpressionAccess().getOrKeyword_1_3_0_1()), new TokenAlias(false, false, grammarAccess.getLogicalOrExpressionAccess().getVerticalLineVerticalLineKeyword_1_3_0_0()));
		match_MachineBlock_BehaviorKeyword_10_0_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getBehaviorKeyword_10_0_0());
		match_MachineBlock_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getCompositeKeyword_9_0_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMachineKeyword_9_0_0_1()));
		match_MachineBlock_ExecutableKeyword_1_1_or_MachineKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getExecutableKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMachineKeyword_1_0()));
		match_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMacroKeyword_8_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getRoutineKeyword_8_0_0_0_0()));
		match_MachineBlock_ProcedureKeyword_8_0_1_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getProcedureKeyword_8_0_1_0());
		match_MachineBlock_PublicKeyword_7_1_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0());
		match_MachineBlock_StatemachineKeyword_10_1_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getStatemachineKeyword_10_1_0());
		match_MachineBlock___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0()));
		match_MachineBlock___LessThanSignKeyword_2_0___MocKeyword_2_1_0_q_ModelOfComputationKingParserRuleCall_2_1_1__q___InstanceKeyword_2_2_0_LeftSquareBracketKeyword_2_2_1___AsteriskKeyword_2_2_2_1_or_PlusSignKeyword_2_2_2_0_or___InitKeyword_2_2_2_2_0_EIntegerParserRuleCall_2_2_2_2_1_MaxKeyword_2_2_2_2_2_EIntegerParserRuleCall_2_2_2_2_3_____RightSquareBracketKeyword_2_2_3__q_GreaterThanSignKeyword_2_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getLessThanSignKeyword_2_0()), new GroupAlias(false, true, new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getMocKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelOfComputationKingParserRuleCall_2_1_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getLeftSquareBracketKeyword_2_2_1()), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInitKeyword_2_2_2_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getEIntegerParserRuleCall_2_2_2_2_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMaxKeyword_2_2_2_2_2()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getEIntegerParserRuleCall_2_2_2_2_3())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getAsteriskKeyword_2_2_2_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPlusSignKeyword_2_2_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getRightSquareBracketKeyword_2_2_3())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getGreaterThanSignKeyword_2_3()));
		match_MachineBlock___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMacroKeyword_8_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getRoutineKeyword_8_0_0_0_0()));
		match_MachineBlock___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0()));
		match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0()));
		match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0()));
		match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q = new GroupAlias(false, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getCompositeKeyword_9_0_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMachineKeyword_9_0_0_1())));
		match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()));
		match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()));
		match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()));
		match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()));
		match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0()));
		match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0()));
		match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__q_PublicKeyword_7_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0())), new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0()));
		match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0()));
		match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0()));
		match_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()));
		match_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()));
		match_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()));
		match_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()));
		match_MoeBehavior_LocalKeyword_1_0_q = new TokenAlias(false, true, grammarAccess.getMoeBehaviorAccess().getLocalKeyword_1_0());
		match_NamedExpression_ColonKeyword_1_0_or_EqualsSignGreaterThanSignKeyword_1_1_or_LessThanSignHyphenMinusKeyword_1_2 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getNamedExpressionAccess().getColonKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getNamedExpressionAccess().getEqualsSignGreaterThanSignKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getNamedExpressionAccess().getLessThanSignHyphenMinusKeyword_1_2()));
		match_ObsInputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getObsInputComStatementAccess().getLessThanSignEqualsSignEqualsSignKeyword_3_1_0_0()), new TokenAlias(false, false, grammarAccess.getObsInputComStatementAccess().getViaKeyword_3_1_0_1()));
		match_ObsOutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getObsOutputComStatementAccess().getEqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0()), new TokenAlias(false, false, grammarAccess.getObsOutputComStatementAccess().getViaKeyword_3_1_0_1()));
		match_ObserverStatement_ObsKeyword_1_1_or_ObserveKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getObserverStatementAccess().getObsKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getObserverStatementAccess().getObserveKeyword_1_0()));
		match_OnWriteRoutine_On_writeKeyword_1_1_or_WriteKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getOnWriteRoutineAccess().getOn_writeKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getOnWriteRoutineAccess().getWriteKeyword_1_0()));
		match_OtherPseudostate_MocKeyword_3_q = new TokenAlias(false, true, grammarAccess.getOtherPseudostateAccess().getMocKeyword_3());
		match_OtherPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getOtherPseudostateAccess().getPseudostateKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getOtherPseudostateAccess().getStateKeyword_1_0()));
		match_OtherPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getOtherPseudostateAccess().getLeftCurlyBracketKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getOtherPseudostateAccess().getRightCurlyBracketKeyword_8_0_2())), new TokenAlias(false, false, grammarAccess.getOtherPseudostateAccess().getSemicolonKeyword_8_1()));
		match_OutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getOutputComStatementAccess().getEqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0()), new TokenAlias(false, false, grammarAccess.getOutputComStatementAccess().getViaKeyword_3_1_0_1()));
		match_PortImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPortImplAccess().getLeftParenthesisKeyword_5_0()), new TokenAlias(false, false, grammarAccess.getPortImplAccess().getRightParenthesisKeyword_5_2()));
		match_Port___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPortAccess().getLeftParenthesisKeyword_5_0()), new TokenAlias(false, false, grammarAccess.getPortAccess().getRightParenthesisKeyword_5_2()));
		match_PrimitiveFloatType_SizeKeyword_3_1_1_q = new TokenAlias(false, true, grammarAccess.getPrimitiveFloatTypeAccess().getSizeKeyword_3_1_1());
		match_PrimitiveIntegerType_SizeKeyword_3_1_1_q = new TokenAlias(false, true, grammarAccess.getPrimitiveIntegerTypeAccess().getSizeKeyword_3_1_1());
		match_PrimitiveRationalType_SizeKeyword_3_1_1_q = new TokenAlias(false, true, grammarAccess.getPrimitiveRationalTypeAccess().getSizeKeyword_3_1_1());
		match_PrimitiveRealType_SizeKeyword_3_1_1_q = new TokenAlias(false, true, grammarAccess.getPrimitiveRealTypeAccess().getSizeKeyword_3_1_1());
		match_PrimitiveStringType_SizeKeyword_2_1_1_q = new TokenAlias(false, true, grammarAccess.getPrimitiveStringTypeAccess().getSizeKeyword_2_1_1());
		match_ProcedureExecution_MoeKeyword_1_q = new TokenAlias(false, true, grammarAccess.getProcedureExecutionAccess().getMoeKeyword_1());
		match_Procedure_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getMacroKeyword_10_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getRoutineKeyword_10_0_0_0_0()));
		match_Procedure_ParameterKeyword_7_0_0_q = new TokenAlias(false, true, grammarAccess.getProcedureAccess().getParameterKeyword_7_0_0());
		match_Procedure_ProcedureKeyword_10_0_1_0_q = new TokenAlias(false, true, grammarAccess.getProcedureAccess().getProcedureKeyword_10_0_1_0());
		match_Procedure_PropertyKeyword_9_0_0_q = new TokenAlias(false, true, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0());
		match_Procedure_PublicKeyword_9_1_0_q = new TokenAlias(false, true, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0());
		match_Procedure___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0()));
		match_Procedure___LeftParenthesisKeyword_5_0_0_RightParenthesisKeyword_5_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getLeftParenthesisKeyword_5_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getRightParenthesisKeyword_5_0_2()));
		match_Procedure___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getLessThanSignKeyword_2_0()), new TokenAlias(false, true, grammarAccess.getProcedureAccess().getMocKeyword_2_1()), new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getAndKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOrKeyword_2_2_1())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getGreaterThanSignKeyword_2_3()));
		match_Procedure___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getMacroKeyword_10_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getRoutineKeyword_10_0_0_0_0()));
		match_Procedure___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0()));
		match_Procedure___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getRightCurlyBracketKeyword_7_0_1_0_1_1_2()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_7_0_1_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getLeftCurlyBracketKeyword_7_0_1_0_1_1_0()));
		match_Procedure___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getRightCurlyBracketKeyword_7_0_1_1_1_1_2()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_7_0_1_1_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getLeftCurlyBracketKeyword_7_0_1_1_1_1_0()));
		match_Procedure___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getRightCurlyBracketKeyword_7_0_1_2_1_1_2()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_7_0_1_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getLeftCurlyBracketKeyword_7_0_1_2_1_1_0()));
		match_Procedure___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getRightCurlyBracketKeyword_7_0_1_3_1_1_2()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_7_0_1_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getLeftCurlyBracketKeyword_7_0_1_3_1_1_0()));
		match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0()));
		match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0()));
		match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0()));
		match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0()));
		match_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()));
		match_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()));
		match_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()));
		match_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getInoutKeyword_8_1_0()));
		match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0()));
		match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0()));
		match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0())), new TokenAlias(false, true, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0()));
		match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0()));
		match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0()));
		match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()));
		match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()));
		match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, true, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()));
		match_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()));
		match_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getProcedureAccess().getPrivateKeyword_9_3_0()));
		match_PropertyPart_ParameterKeyword_1_0_0_q = new TokenAlias(false, true, grammarAccess.getPropertyPartAccess().getParameterKeyword_1_0_0());
		match_PropertyPart_PropertyKeyword_3_0_0_q = new TokenAlias(false, true, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0());
		match_PropertyPart_PublicKeyword_3_1_0_q = new TokenAlias(false, true, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0());
		match_PropertyPart___InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0()));
		match_PropertyPart___PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0()));
		match_PropertyPart___RightCurlyBracketKeyword_1_0_1_0_1_1_2_InputKeyword_1_0_1_0_0_LeftCurlyBracketKeyword_1_0_1_0_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getRightCurlyBracketKeyword_1_0_1_0_1_1_2()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_1_0_1_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getLeftCurlyBracketKeyword_1_0_1_0_1_1_0()));
		match_PropertyPart___RightCurlyBracketKeyword_1_0_1_1_1_1_2_InoutKeyword_1_0_1_1_0_LeftCurlyBracketKeyword_1_0_1_1_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getRightCurlyBracketKeyword_1_0_1_1_1_1_2()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_1_0_1_1_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getLeftCurlyBracketKeyword_1_0_1_1_1_1_0()));
		match_PropertyPart___RightCurlyBracketKeyword_1_0_1_2_1_1_2_OutputKeyword_1_0_1_2_0_LeftCurlyBracketKeyword_1_0_1_2_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getRightCurlyBracketKeyword_1_0_1_2_1_1_2()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_1_0_1_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getLeftCurlyBracketKeyword_1_0_1_2_1_1_0()));
		match_PropertyPart___RightCurlyBracketKeyword_1_0_1_3_1_1_2_ReturnKeyword_1_0_1_3_0_LeftCurlyBracketKeyword_1_0_1_3_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getRightCurlyBracketKeyword_1_0_1_3_1_1_2()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_1_0_1_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getLeftCurlyBracketKeyword_1_0_1_3_1_1_0()));
		match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0()));
		match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0()));
		match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0()));
		match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0()));
		match_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()));
		match_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()));
		match_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()));
		match_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInputKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getOutputKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getReturnKeyword_2_3_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getInoutKeyword_2_1_0()));
		match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0()));
		match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0()));
		match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__q_PublicKeyword_3_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0())), new TokenAlias(false, true, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0()));
		match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0()));
		match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0()));
		match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()));
		match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()));
		match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__q_PropertyKeyword_3_0_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0())), new TokenAlias(false, true, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()));
		match_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()));
		match_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPropertyKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getProtectedKeyword_3_2_0()), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPublicKeyword_3_1_0())), new TokenAlias(false, false, grammarAccess.getPropertyPartAccess().getPrivateKeyword_3_3_0()));
		match_PseudostateInitial_MocKeyword_1_0_2_q = new TokenAlias(false, true, grammarAccess.getPseudostateInitialAccess().getMocKeyword_1_0_2());
		match_PseudostateInitial_PseudostateKeyword_1_0_0_1_or_StateKeyword_1_0_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getPseudostateInitialAccess().getPseudostateKeyword_1_0_0_1()), new TokenAlias(false, false, grammarAccess.getPseudostateInitialAccess().getStateKeyword_1_0_0_0()));
		match_PseudostateInitial_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_TransitionKeyword_3_0_1_0_q_RightCurlyBracketKeyword_3_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getPseudostateInitialAccess().getLeftCurlyBracketKeyword_3_0_0()), new TokenAlias(false, true, grammarAccess.getPseudostateInitialAccess().getTransitionKeyword_3_0_1_0()), new TokenAlias(false, false, grammarAccess.getPseudostateInitialAccess().getRightCurlyBracketKeyword_3_0_2())), new TokenAlias(false, false, grammarAccess.getPseudostateInitialAccess().getSemicolonKeyword_3_1()));
		match_PseudostateInitial_TransitionKeyword_3_0_1_0_q = new TokenAlias(false, true, grammarAccess.getPseudostateInitialAccess().getTransitionKeyword_3_0_1_0());
		match_Routine_DesignDebugTraceParserRuleCall_2_a = new TokenAlias(true, true, grammarAccess.getRoutineAccess().getDesignDebugTraceParserRuleCall_2());
		match_Routine___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getRoutineAccess().getLeftParenthesisKeyword_6_0()), new TokenAlias(false, false, grammarAccess.getRoutineAccess().getRightParenthesisKeyword_6_2()));
		match_SignalImpl___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getSignalImplAccess().getLeftParenthesisKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getSignalImplAccess().getRightParenthesisKeyword_4_2()));
		match_Signal___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getSignalAccess().getLeftParenthesisKeyword_5_0()), new TokenAlias(false, false, grammarAccess.getSignalAccess().getRightParenthesisKeyword_5_2()));
		match_SimpleState_SemicolonKeyword_5_1_or___LeftCurlyBracketKeyword_5_0_0_RightCurlyBracketKeyword_5_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_5_0_0()), new TokenAlias(false, false, grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_5_0_2())), new TokenAlias(false, false, grammarAccess.getSimpleStateAccess().getSemicolonKeyword_5_1()));
		match_SimpleState___LessThanSignKeyword_2_0_MocKeyword_2_1_q_SimpleKeyword_2_2_GreaterThanSignKeyword_2_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getSimpleStateAccess().getLessThanSignKeyword_2_0()), new TokenAlias(false, true, grammarAccess.getSimpleStateAccess().getMocKeyword_2_1()), new TokenAlias(false, false, grammarAccess.getSimpleStateAccess().getSimpleKeyword_2_2()), new TokenAlias(false, false, grammarAccess.getSimpleStateAccess().getGreaterThanSignKeyword_2_3()));
		match_SlotParameter_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_0_or_EqualsSignKeyword_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getSlotParameterAccess().getColonColonEqualsSignKeyword_1_3()), new TokenAlias(false, false, grammarAccess.getSlotParameterAccess().getColonEqualsSignKeyword_1_2()), new TokenAlias(false, false, grammarAccess.getSlotParameterAccess().getColonKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getSlotParameterAccess().getEqualsSignKeyword_1_1()));
		match_SlotProperty_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_1_or_EqualsSignKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getSlotPropertyAccess().getColonColonEqualsSignKeyword_1_3()), new TokenAlias(false, false, grammarAccess.getSlotPropertyAccess().getColonEqualsSignKeyword_1_2()), new TokenAlias(false, false, grammarAccess.getSlotPropertyAccess().getColonKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getSlotPropertyAccess().getEqualsSignKeyword_1_0()));
		match_StartState_MocKeyword_1_0_2_q = new TokenAlias(false, true, grammarAccess.getStartStateAccess().getMocKeyword_1_0_2());
		match_StartState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getStartStateAccess().getLeftCurlyBracketKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getStartStateAccess().getRightCurlyBracketKeyword_3_0_2())), new TokenAlias(false, false, grammarAccess.getStartStateAccess().getSemicolonKeyword_3_1()));
		match_StatemachineNamedRegion___IdKeyword_2_0_or_NameKeyword_2_1__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineNamedRegionAccess().getIdKeyword_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineNamedRegionAccess().getNameKeyword_2_1()));
		match_StatemachineRegion_RegionKeyword_1_1_or_StateKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getStatemachineRegionAccess().getRegionKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getStatemachineRegionAccess().getStateKeyword_1_0()));
		match_Statemachine_InoutKeyword_8_1_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0());
		match_Statemachine_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getMacroKeyword_10_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getRoutineKeyword_10_0_0_0_0()));
		match_Statemachine_OutputKeyword_8_2_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0());
		match_Statemachine_ParameterKeyword_7_0_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getParameterKeyword_7_0_0());
		match_Statemachine_ProcedureKeyword_10_0_1_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getProcedureKeyword_10_0_1_0());
		match_Statemachine_PropertyKeyword_9_0_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0());
		match_Statemachine_PublicKeyword_9_1_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0());
		match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0()));
		match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p = new AlternativeAlias(true, false, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0()));
		match_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0()));
		match_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getLessThanSignKeyword_3_0()), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getMocKeyword_3_1()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelOfComputationKingParserRuleCall_3_2()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getGreaterThanSignKeyword_3_3()));
		match_Statemachine___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getMacroKeyword_10_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getRoutineKeyword_10_0_0_0_0()));
		match_Statemachine___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0()));
		match_Statemachine___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_7_0_1_0_1_1_2()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_7_0_1_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_7_0_1_0_1_1_0()));
		match_Statemachine___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_7_0_1_1_1_1_2()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_7_0_1_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_7_0_1_1_1_1_0()));
		match_Statemachine___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_7_0_1_2_1_1_2()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_7_0_1_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_7_0_1_2_1_1_0()));
		match_Statemachine___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_7_0_1_3_1_1_2()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_7_0_1_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_7_0_1_3_1_1_0()));
		match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0()));
		match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0()));
		match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_StatemachineKeyword_11_0_0_0__q = new GroupAlias(false, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getStatemachineKeyword_11_0_0_0()));
		match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()));
		match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()));
		match_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()));
		match_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()));
		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0()));
		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0()));
		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()));
		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()));
		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__q_OutputKeyword_8_2_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()));
		match_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()));
		match_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()));
		match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()));
		match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()));
		match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InoutKeyword_8_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()));
		match_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()));
		match_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()));
		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0()));
		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0()));
		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0())), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0()));
		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()));
		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()));
		match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()));
		match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()));
		match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()));
		match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()));
		match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()));
		match_StructureTypeDefinitionImpl_PropertyKeyword_5_q = new TokenAlias(false, true, grammarAccess.getStructureTypeDefinitionImplAccess().getPropertyKeyword_5());
		match_StructureTypeDefinition_PropertyKeyword_7_q = new TokenAlias(false, true, grammarAccess.getStructureTypeDefinitionAccess().getPropertyKeyword_7());
		match_StructureType_PropertyKeyword_3_q = new TokenAlias(false, true, grammarAccess.getStructureTypeAccess().getPropertyKeyword_3());
		match_TransitionMoe_MocKeyword_1_0_0_q = new TokenAlias(false, true, grammarAccess.getTransitionMoeAccess().getMocKeyword_1_0_0());
		match_TransitionMoe_PriorKeyword_1_0_2_1_q = new TokenAlias(false, true, grammarAccess.getTransitionMoeAccess().getPriorKeyword_1_0_2_1());
		match_TransitionMoe_PriorKeyword_1_1_0_q = new TokenAlias(false, true, grammarAccess.getTransitionMoeAccess().getPriorKeyword_1_1_0());
		match_Transition_GuardKeyword_6_0_1_0_1_1_q = new TokenAlias(false, true, grammarAccess.getTransitionAccess().getGuardKeyword_6_0_1_0_1_1());
		match_Transition_GuardKeyword_6_1_2_0_1_0_1_1_q = new TokenAlias(false, true, grammarAccess.getTransitionAccess().getGuardKeyword_6_1_2_0_1_0_1_1());
		match_Transition_SemicolonKeyword_6_1_2_1_or___LeftCurlyBracketKeyword_6_1_2_0_0___TriggerKeyword_6_1_2_0_1_0_0_0_q_GuardKeyword_6_1_2_0_1_0_1_1_q_TguardKeyword_6_1_2_0_1_0_2_1_q_EffectKeyword_6_1_2_0_1_0_3__q_RightCurlyBracketKeyword_6_1_2_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTransitionAccess().getLeftCurlyBracketKeyword_6_1_2_0_0()), new GroupAlias(false, true, new TokenAlias(false, true, grammarAccess.getTransitionAccess().getTriggerKeyword_6_1_2_0_1_0_0_0()), new TokenAlias(false, true, grammarAccess.getTransitionAccess().getGuardKeyword_6_1_2_0_1_0_1_1()), new TokenAlias(false, true, grammarAccess.getTransitionAccess().getTguardKeyword_6_1_2_0_1_0_2_1()), new TokenAlias(false, false, grammarAccess.getTransitionAccess().getEffectKeyword_6_1_2_0_1_0_3())), new TokenAlias(false, false, grammarAccess.getTransitionAccess().getRightCurlyBracketKeyword_6_1_2_0_2())), new TokenAlias(false, false, grammarAccess.getTransitionAccess().getSemicolonKeyword_6_1_2_1()));
		match_Transition_TguardKeyword_6_0_1_0_2_1_q = new TokenAlias(false, true, grammarAccess.getTransitionAccess().getTguardKeyword_6_0_1_0_2_1());
		match_Transition_TguardKeyword_6_1_2_0_1_0_2_1_q = new TokenAlias(false, true, grammarAccess.getTransitionAccess().getTguardKeyword_6_1_2_0_1_0_2_1());
		match_Transition_TriggerKeyword_6_0_1_0_0_0_q = new TokenAlias(false, true, grammarAccess.getTransitionAccess().getTriggerKeyword_6_0_1_0_0_0());
		match_Transition_TriggerKeyword_6_1_2_0_1_0_0_0_q = new TokenAlias(false, true, grammarAccess.getTransitionAccess().getTriggerKeyword_6_1_2_0_1_0_0_0());
		match_Transition___TriggerKeyword_6_0_1_0_0_0_q_GuardKeyword_6_0_1_0_1_1_q_TguardKeyword_6_0_1_0_2_1_q_EffectKeyword_6_0_1_0_3__q = new GroupAlias(false, true, new TokenAlias(false, true, grammarAccess.getTransitionAccess().getTriggerKeyword_6_0_1_0_0_0()), new TokenAlias(false, true, grammarAccess.getTransitionAccess().getGuardKeyword_6_0_1_0_1_1()), new TokenAlias(false, true, grammarAccess.getTransitionAccess().getTguardKeyword_6_0_1_0_2_1()), new TokenAlias(false, false, grammarAccess.getTransitionAccess().getEffectKeyword_6_0_1_0_3()));
		match_UnionTypeDefinitionImpl_PropertyKeyword_5_q = new TokenAlias(false, true, grammarAccess.getUnionTypeDefinitionImplAccess().getPropertyKeyword_5());
		match_UnionTypeDefinition_PropertyKeyword_7_q = new TokenAlias(false, true, grammarAccess.getUnionTypeDefinitionAccess().getPropertyKeyword_7());
		match_UnionType_PropertyKeyword_3_q = new TokenAlias(false, true, grammarAccess.getUnionTypeAccess().getPropertyKeyword_3());
		match_VariableImpl_VarKeyword_1_2_2_q = new TokenAlias(false, true, grammarAccess.getVariableImplAccess().getVarKeyword_1_2_2());
		match_VariableImpl_VarKeyword_1_3_1_0_q = new TokenAlias(false, true, grammarAccess.getVariableImplAccess().getVarKeyword_1_3_1_0());
		match_VariableRoutineParameter_FormalParameterOffsetParserRuleCall_0_q = new TokenAlias(false, true, grammarAccess.getVariableRoutineParameterAccess().getFormalParameterOffsetParserRuleCall_0());
		match_Variable_VarKeyword_1_2_2_q = new TokenAlias(false, true, grammarAccess.getVariableAccess().getVarKeyword_1_2_2());
		match_Variable_VarKeyword_1_3_1_0_q = new TokenAlias(false, true, grammarAccess.getVariableAccess().getVarKeyword_1_3_1_0());
		match_XliaPrologAttribute_VersionKeyword_1_1_q = new TokenAlias(false, true, grammarAccess.getXliaPrologAttributeAccess().getVersionKeyword_1_1());
		match_XliaSystem_BehaviorKeyword_10_0_0_q = new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getBehaviorKeyword_10_0_0());
		match_XliaSystem_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getCompositeKeyword_9_0_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getMachineKeyword_9_0_0_1()));
		match_XliaSystem_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getMacroKeyword_8_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getRoutineKeyword_8_0_0_0_0()));
		match_XliaSystem_ModelKeyword_9_1_0_q = new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0());
		match_XliaSystem_ProcedureKeyword_8_0_1_0_q = new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getProcedureKeyword_8_0_1_0());
		match_XliaSystem_PrototypeKeyword_9_2_0_q = new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0());
		match_XliaSystem_StatemachineKeyword_10_1_0_q = new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getStatemachineKeyword_10_1_0());
		match_XliaSystem___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0()));
		match_XliaSystem___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getLessThanSignKeyword_2_0()), new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getMocKeyword_2_1()), new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getAndKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getOrKeyword_2_2_1())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getGreaterThanSignKeyword_2_3()));
		match_XliaSystem___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getMacroKeyword_8_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getRoutineKeyword_8_0_0_0_0()));
		match_XliaSystem___ModelKeyword_9_1_0_q_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q = new GroupAlias(false, true, new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0()), new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0())), new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getCompositeKeyword_9_0_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getMachineKeyword_9_0_0_1())));
		match_XliaSystem___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0()));
		match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0()));
		match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0()));
		match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0())), new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0()));
		match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0()));
		match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0()));
		match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, true, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0()));
		match_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()));
		match_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getInstanceKeyword_9_3_0()));
		match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0()));
		match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0()));
		match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0()));
		match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0()));
		match_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()));
		match_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()));
		match_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()));
		match_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPublicKeyword_7_1_0())), new TokenAlias(false, false, grammarAccess.getXliaSystemAccess().getPrivateKeyword_7_3_0()));
		match_moeRoutine___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getMoeRoutineAccess().getLeftParenthesisKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getMoeRoutineAccess().getRightParenthesisKeyword_1_2()));
	}
	
	@Override
	protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (ruleCall.getRule() == grammarAccess.getDesignDebugTraceRule())
			return getDesignDebugTraceToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getEIntegerRule())
			return getEIntegerToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getFormalParameterOffsetRule())
			return getFormalParameterOffsetToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getModelOfComputationKingRule())
			return getModelOfComputationKingToken(semanticObject, ruleCall, node);
		return "";
	}
	
	/**
	 * DesignDebugTrace
	 * 	: '#model'
	 * 	| '#instance'
	 * 	| '#static'
	 * 	| '#dynamic'
	 * 	| '#runtime'
	 * 	| '#static#instance'
	 * 	| '#dynamic#instance'
	 * 	| '#prototype'
	 * 	| '#dynamic#prototype'
	 * 	;
	 */
	protected String getDesignDebugTraceToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "#model";
	}
	
	/**
	 * EInteger returns ecore::ELong
	 * 	: '-'? INT
	 * 	;
	 */
	protected String getEIntegerToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "";
	}
	
	/**
	 * FormalParameterOffset
	 * 	: EOffset
	 * 	;
	 */
	protected String getFormalParameterOffsetToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "$:";
	}
	
	/**
	 * ModelOfComputationKing
	 * 	: 'and'
	 * 	| 'or'
	 * 	| '#STF'
	 * 	| '#STS'
	 * 	| '#DF'
	 * 	
	 * 	| '#alt'
	 * 	| '#opt'
	 * 	| '#loop'
	 * 	| '#break'
	 * 	| '#par'
	 * 	| '#strict'
	 * 	| '#weak'
	 * 	| '#seq'
	 * 	| '#critical'
	 * 	| '#ignore'
	 * 	| '#consider'
	 * 	| '#assert'
	 * 	| '#neg'
	 * 	;
	 */
	protected String getModelOfComputationKingToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "and";
	}
	
	@Override
	protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
		if (transition.getAmbiguousSyntaxes().isEmpty()) return;
		List<INode> transitionNodes = collectNodes(fromNode, toNode);
		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
			List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
			if (match_BaseExpression_LeftParenthesisKeyword_1_0_a.equals(syntax))
				emit_BaseExpression_LeftParenthesisKeyword_1_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BaseExpression_LeftParenthesisKeyword_1_0_p.equals(syntax))
				emit_BaseExpression_LeftParenthesisKeyword_1_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BehaviorPart_BehaviorKeyword_1_0_0_q.equals(syntax))
				emit_BehaviorPart_BehaviorKeyword_1_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BehaviorPart_StatemachineKeyword_1_1_0_q.equals(syntax))
				emit_BehaviorPart_StatemachineKeyword_1_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BlockParameterSet___RightCurlyBracketKeyword_1_0_1_1_2_InputKeyword_1_0_0_LeftCurlyBracketKeyword_1_0_1_1_0__q.equals(syntax))
				emit_BlockParameterSet___RightCurlyBracketKeyword_1_0_1_1_2_InputKeyword_1_0_0_LeftCurlyBracketKeyword_1_0_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BlockParameterSet___RightCurlyBracketKeyword_1_1_1_1_2_InoutKeyword_1_1_0_LeftCurlyBracketKeyword_1_1_1_1_0__q.equals(syntax))
				emit_BlockParameterSet___RightCurlyBracketKeyword_1_1_1_1_2_InoutKeyword_1_1_0_LeftCurlyBracketKeyword_1_1_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BlockParameterSet___RightCurlyBracketKeyword_1_2_1_1_2_OutputKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_1_1_0__q.equals(syntax))
				emit_BlockParameterSet___RightCurlyBracketKeyword_1_2_1_1_2_OutputKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BlockParameterSet___RightCurlyBracketKeyword_1_3_1_1_2_ReturnKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_1_1_0__q.equals(syntax))
				emit_BlockParameterSet___RightCurlyBracketKeyword_1_3_1_1_2_ReturnKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BufferContainerType_SizeKeyword_2_0_1_0_0_q.equals(syntax))
				emit_BufferContainerType_SizeKeyword_2_0_1_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BufferContainerType_SizeKeyword_2_1_1_0_0_q.equals(syntax))
				emit_BufferContainerType_SizeKeyword_2_1_1_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BufferContainerType_____LeftSquareBracketKeyword_2_1_0_RightSquareBracketKeyword_2_1_2___or___LessThanSignKeyword_2_0_0_GreaterThanSignKeyword_2_0_2____q.equals(syntax))
				emit_BufferContainerType_____LeftSquareBracketKeyword_2_1_0_RightSquareBracketKeyword_2_1_2___or___LessThanSignKeyword_2_0_0_GreaterThanSignKeyword_2_0_2____q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ChoiceTypeDefinitionImpl_PropertyKeyword_5_q.equals(syntax))
				emit_ChoiceTypeDefinitionImpl_PropertyKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ChoiceTypeDefinition_PropertyKeyword_7_q.equals(syntax))
				emit_ChoiceTypeDefinition_PropertyKeyword_7_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ChoiceType_PropertyKeyword_3_q.equals(syntax))
				emit_ChoiceType_PropertyKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CollectionFunctionExpression_EmptyKeyword_0_0_or_NonemptyKeyword_1_0_or_SizeKeyword_2_0.equals(syntax))
				emit_CollectionFunctionExpression_EmptyKeyword_0_0_or_NonemptyKeyword_1_0_or_SizeKeyword_2_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ComBufferRef_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1.equals(syntax))
				emit_ComBufferRef_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ComPoint_FullStopKeyword_1_1_1_or_HyphenMinusGreaterThanSignKeyword_1_1_0.equals(syntax))
				emit_ComPoint_FullStopKeyword_1_1_1_or_HyphenMinusGreaterThanSignKeyword_1_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1.equals(syntax))
				emit_CompositePart_CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0.equals(syntax))
				emit_CompositePart_MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_ModelKeyword_2_1_0_q.equals(syntax))
				emit_CompositePart_ModelKeyword_2_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_ProcedureKeyword_1_0_1_0_q.equals(syntax))
				emit_CompositePart_ProcedureKeyword_1_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart___InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a.equals(syntax))
				emit_CompositePart___InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart___MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0__q.equals(syntax))
				emit_CompositePart___MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart___ModelKeyword_2_1_0_q_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a___CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1____q.equals(syntax))
				emit_CompositePart___ModelKeyword_2_1_0_q_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a___CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1____q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__a.equals(syntax))
				emit_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__p.equals(syntax))
				emit_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__a.equals(syntax))
				emit_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__p.equals(syntax))
				emit_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a.equals(syntax))
				emit_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__a.equals(syntax))
				emit_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__p.equals(syntax))
				emit_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositeState_MocKeyword_3_q.equals(syntax))
				emit_CompositeState_MocKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositeState_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_TransitionKeyword_8_0_1_0_2_0_a_RightCurlyBracketKeyword_8_0_2__.equals(syntax))
				emit_CompositeState_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_TransitionKeyword_8_0_1_0_2_0_a_RightCurlyBracketKeyword_8_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositeState_TransitionKeyword_8_0_1_0_2_0_a.equals(syntax))
				emit_CompositeState_TransitionKeyword_8_0_1_0_2_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CompositeState_TransitionKeyword_8_0_1_0_2_0_p.equals(syntax))
				emit_CompositeState_TransitionKeyword_8_0_1_0_2_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Connector_ConnectKeyword_0_1_or_ConnectorKeyword_0_0.equals(syntax))
				emit_Connector_ConnectKeyword_0_1_or_ConnectorKeyword_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DynamicInstanceSpecification___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_2__q.equals(syntax))
				emit_DynamicInstanceSpecification___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DynamicInstanceSpecification___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q.equals(syntax))
				emit_DynamicInstanceSpecification___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ElseIfStatement_ElseifKeyword_0_0_or___ElseKeyword_0_1_0_IfKeyword_0_1_1__.equals(syntax))
				emit_ElseIfStatement_ElseifKeyword_0_0_or___ElseKeyword_0_1_0_IfKeyword_0_1_1__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_EndingPseudostate_MocKeyword_3_q.equals(syntax))
				emit_EndingPseudostate_MocKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_EndingPseudostate_MoeKeyword_8_0_1_0_q.equals(syntax))
				emit_EndingPseudostate_MoeKeyword_8_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_EndingPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0.equals(syntax))
				emit_EndingPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_EndingPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__.equals(syntax))
				emit_EndingPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_FinalState_MocKeyword_1_0_2_q.equals(syntax))
				emit_FinalState_MocKeyword_1_0_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_FinalState_MoeKeyword_3_0_1_0_q.equals(syntax))
				emit_FinalState_MoeKeyword_3_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_FinalState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__.equals(syntax))
				emit_FinalState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_FormalParameter_FormalParameterOffsetParserRuleCall_1_q.equals(syntax))
				emit_FormalParameter_FormalParameterOffsetParserRuleCall_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_FunctionImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q.equals(syntax))
				emit_FunctionImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Function___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q.equals(syntax))
				emit_Function___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_InputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1.equals(syntax))
				emit_InputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_InstanceMachine_ModelKeyword_3_q.equals(syntax))
				emit_InstanceMachine_ModelKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_InstanceMachine_SemicolonKeyword_9_1_or___LeftCurlyBracketKeyword_9_0_0_RightCurlyBracketKeyword_9_0_2__.equals(syntax))
				emit_InstanceMachine_SemicolonKeyword_9_1_or___LeftCurlyBracketKeyword_9_0_0_RightCurlyBracketKeyword_9_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_InstanceMachine___LeftParenthesisKeyword_8_0_RightParenthesisKeyword_8_2__q.equals(syntax))
				emit_InstanceMachine___LeftParenthesisKeyword_8_0_RightParenthesisKeyword_8_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_InstanceMachine___MachineKeyword_1_0_or_StatemachineKeyword_1_1__q.equals(syntax))
				emit_InstanceMachine___MachineKeyword_1_0_or_StatemachineKeyword_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LiteralParentExpression_ModelKeyword_2_1_q.equals(syntax))
				emit_LiteralParentExpression_ModelKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LiteralPureReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q.equals(syntax))
				emit_LiteralPureReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LiteralReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q.equals(syntax))
				emit_LiteralReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LiteralReferenceSpecification_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1.equals(syntax))
				emit_LiteralReferenceSpecification_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LiteralSelfExpression_ModelKeyword_2_1_q.equals(syntax))
				emit_LiteralSelfExpression_ModelKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LiteralSuperExpression_ModelKeyword_2_1_q.equals(syntax))
				emit_LiteralSuperExpression_ModelKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LiteralTimeDeltaExpression_LiteralTimeDeltaInitialExpression_DeltaInitialKeyword_1_or_DeltaKeyword_1.equals(syntax))
				emit_LiteralTimeDeltaExpression_LiteralTimeDeltaInitialExpression_DeltaInitialKeyword_1_or_DeltaKeyword_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LiteralTimeExpression_LiteralTimeInitialExpression_TimeInitialKeyword_1_or_TimeKeyword_1.equals(syntax))
				emit_LiteralTimeExpression_LiteralTimeInitialExpression_TimeInitialKeyword_1_or_TimeKeyword_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LogicalAndExpression_AmpersandAmpersandKeyword_1_3_0_0_or_AndKeyword_1_3_0_1.equals(syntax))
				emit_LogicalAndExpression_AmpersandAmpersandKeyword_1_3_0_0_or_AndKeyword_1_3_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_LogicalOrExpression_OrKeyword_1_3_0_1_or_VerticalLineVerticalLineKeyword_1_3_0_0.equals(syntax))
				emit_LogicalOrExpression_OrKeyword_1_3_0_1_or_VerticalLineVerticalLineKeyword_1_3_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_BehaviorKeyword_10_0_0_q.equals(syntax))
				emit_MachineBlock_BehaviorKeyword_10_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1.equals(syntax))
				emit_MachineBlock_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_ExecutableKeyword_1_1_or_MachineKeyword_1_0.equals(syntax))
				emit_MachineBlock_ExecutableKeyword_1_1_or_MachineKeyword_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0.equals(syntax))
				emit_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_ProcedureKeyword_8_0_1_0_q.equals(syntax))
				emit_MachineBlock_ProcedureKeyword_8_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_PublicKeyword_7_1_0_q.equals(syntax))
				emit_MachineBlock_PublicKeyword_7_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_StatemachineKeyword_10_1_0_q.equals(syntax))
				emit_MachineBlock_StatemachineKeyword_10_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a.equals(syntax))
				emit_MachineBlock___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock___LessThanSignKeyword_2_0___MocKeyword_2_1_0_q_ModelOfComputationKingParserRuleCall_2_1_1__q___InstanceKeyword_2_2_0_LeftSquareBracketKeyword_2_2_1___AsteriskKeyword_2_2_2_1_or_PlusSignKeyword_2_2_2_0_or___InitKeyword_2_2_2_2_0_EIntegerParserRuleCall_2_2_2_2_1_MaxKeyword_2_2_2_2_2_EIntegerParserRuleCall_2_2_2_2_3_____RightSquareBracketKeyword_2_2_3__q_GreaterThanSignKeyword_2_3__q.equals(syntax))
				emit_MachineBlock___LessThanSignKeyword_2_0___MocKeyword_2_1_0_q_ModelOfComputationKingParserRuleCall_2_1_1__q___InstanceKeyword_2_2_0_LeftSquareBracketKeyword_2_2_1___AsteriskKeyword_2_2_2_1_or_PlusSignKeyword_2_2_2_0_or___InitKeyword_2_2_2_2_0_EIntegerParserRuleCall_2_2_2_2_1_MaxKeyword_2_2_2_2_2_EIntegerParserRuleCall_2_2_2_2_3_____RightSquareBracketKeyword_2_2_3__q_GreaterThanSignKeyword_2_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q.equals(syntax))
				emit_MachineBlock___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a.equals(syntax))
				emit_MachineBlock___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a.equals(syntax))
				emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p.equals(syntax))
				emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q.equals(syntax))
				emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a.equals(syntax))
				emit_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p.equals(syntax))
				emit_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a.equals(syntax))
				emit_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p.equals(syntax))
				emit_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a.equals(syntax))
				emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p.equals(syntax))
				emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__q_PublicKeyword_7_1_0_q__a.equals(syntax))
				emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__q_PublicKeyword_7_1_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a.equals(syntax))
				emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p.equals(syntax))
				emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a.equals(syntax))
				emit_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p.equals(syntax))
				emit_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a.equals(syntax))
				emit_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p.equals(syntax))
				emit_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_MoeBehavior_LocalKeyword_1_0_q.equals(syntax))
				emit_MoeBehavior_LocalKeyword_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_NamedExpression_ColonKeyword_1_0_or_EqualsSignGreaterThanSignKeyword_1_1_or_LessThanSignHyphenMinusKeyword_1_2.equals(syntax))
				emit_NamedExpression_ColonKeyword_1_0_or_EqualsSignGreaterThanSignKeyword_1_1_or_LessThanSignHyphenMinusKeyword_1_2(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ObsInputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1.equals(syntax))
				emit_ObsInputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ObsOutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1.equals(syntax))
				emit_ObsOutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ObserverStatement_ObsKeyword_1_1_or_ObserveKeyword_1_0.equals(syntax))
				emit_ObserverStatement_ObsKeyword_1_1_or_ObserveKeyword_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_OnWriteRoutine_On_writeKeyword_1_1_or_WriteKeyword_1_0.equals(syntax))
				emit_OnWriteRoutine_On_writeKeyword_1_1_or_WriteKeyword_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_OtherPseudostate_MocKeyword_3_q.equals(syntax))
				emit_OtherPseudostate_MocKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_OtherPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0.equals(syntax))
				emit_OtherPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_OtherPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__.equals(syntax))
				emit_OtherPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_OutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1.equals(syntax))
				emit_OutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PortImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q.equals(syntax))
				emit_PortImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Port___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q.equals(syntax))
				emit_Port___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PrimitiveFloatType_SizeKeyword_3_1_1_q.equals(syntax))
				emit_PrimitiveFloatType_SizeKeyword_3_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PrimitiveIntegerType_SizeKeyword_3_1_1_q.equals(syntax))
				emit_PrimitiveIntegerType_SizeKeyword_3_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PrimitiveRationalType_SizeKeyword_3_1_1_q.equals(syntax))
				emit_PrimitiveRationalType_SizeKeyword_3_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PrimitiveRealType_SizeKeyword_3_1_1_q.equals(syntax))
				emit_PrimitiveRealType_SizeKeyword_3_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PrimitiveStringType_SizeKeyword_2_1_1_q.equals(syntax))
				emit_PrimitiveStringType_SizeKeyword_2_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ProcedureExecution_MoeKeyword_1_q.equals(syntax))
				emit_ProcedureExecution_MoeKeyword_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0.equals(syntax))
				emit_Procedure_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_ParameterKeyword_7_0_0_q.equals(syntax))
				emit_Procedure_ParameterKeyword_7_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_ProcedureKeyword_10_0_1_0_q.equals(syntax))
				emit_Procedure_ProcedureKeyword_10_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_PropertyKeyword_9_0_0_q.equals(syntax))
				emit_Procedure_PropertyKeyword_9_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_PublicKeyword_9_1_0_q.equals(syntax))
				emit_Procedure_PublicKeyword_9_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a.equals(syntax))
				emit_Procedure___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___LeftParenthesisKeyword_5_0_0_RightParenthesisKeyword_5_0_2__q.equals(syntax))
				emit_Procedure___LeftParenthesisKeyword_5_0_0_RightParenthesisKeyword_5_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q.equals(syntax))
				emit_Procedure___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q.equals(syntax))
				emit_Procedure___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a.equals(syntax))
				emit_Procedure___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q.equals(syntax))
				emit_Procedure___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q.equals(syntax))
				emit_Procedure___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q.equals(syntax))
				emit_Procedure___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q.equals(syntax))
				emit_Procedure___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a.equals(syntax))
				emit_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p.equals(syntax))
				emit_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a.equals(syntax))
				emit_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p.equals(syntax))
				emit_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a.equals(syntax))
				emit_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p.equals(syntax))
				emit_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a.equals(syntax))
				emit_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p.equals(syntax))
				emit_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a.equals(syntax))
				emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p.equals(syntax))
				emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a.equals(syntax))
				emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a.equals(syntax))
				emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p.equals(syntax))
				emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a.equals(syntax))
				emit_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p.equals(syntax))
				emit_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a.equals(syntax))
				emit_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a.equals(syntax))
				emit_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p.equals(syntax))
				emit_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_ParameterKeyword_1_0_0_q.equals(syntax))
				emit_PropertyPart_ParameterKeyword_1_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_PropertyKeyword_3_0_0_q.equals(syntax))
				emit_PropertyPart_PropertyKeyword_3_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_PublicKeyword_3_1_0_q.equals(syntax))
				emit_PropertyPart_PublicKeyword_3_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart___InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a.equals(syntax))
				emit_PropertyPart___InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart___PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a.equals(syntax))
				emit_PropertyPart___PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart___RightCurlyBracketKeyword_1_0_1_0_1_1_2_InputKeyword_1_0_1_0_0_LeftCurlyBracketKeyword_1_0_1_0_1_1_0__q.equals(syntax))
				emit_PropertyPart___RightCurlyBracketKeyword_1_0_1_0_1_1_2_InputKeyword_1_0_1_0_0_LeftCurlyBracketKeyword_1_0_1_0_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart___RightCurlyBracketKeyword_1_0_1_1_1_1_2_InoutKeyword_1_0_1_1_0_LeftCurlyBracketKeyword_1_0_1_1_1_1_0__q.equals(syntax))
				emit_PropertyPart___RightCurlyBracketKeyword_1_0_1_1_1_1_2_InoutKeyword_1_0_1_1_0_LeftCurlyBracketKeyword_1_0_1_1_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart___RightCurlyBracketKeyword_1_0_1_2_1_1_2_OutputKeyword_1_0_1_2_0_LeftCurlyBracketKeyword_1_0_1_2_1_1_0__q.equals(syntax))
				emit_PropertyPart___RightCurlyBracketKeyword_1_0_1_2_1_1_2_OutputKeyword_1_0_1_2_0_LeftCurlyBracketKeyword_1_0_1_2_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart___RightCurlyBracketKeyword_1_0_1_3_1_1_2_ReturnKeyword_1_0_1_3_0_LeftCurlyBracketKeyword_1_0_1_3_1_1_0__q.equals(syntax))
				emit_PropertyPart___RightCurlyBracketKeyword_1_0_1_3_1_1_2_ReturnKeyword_1_0_1_3_0_LeftCurlyBracketKeyword_1_0_1_3_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__a.equals(syntax))
				emit_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__p.equals(syntax))
				emit_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__a.equals(syntax))
				emit_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__p.equals(syntax))
				emit_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__a.equals(syntax))
				emit_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__p.equals(syntax))
				emit_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__a.equals(syntax))
				emit_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__p.equals(syntax))
				emit_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__a.equals(syntax))
				emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__p.equals(syntax))
				emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__q_PublicKeyword_3_1_0_q__a.equals(syntax))
				emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__q_PublicKeyword_3_1_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__a.equals(syntax))
				emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__p.equals(syntax))
				emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__a.equals(syntax))
				emit_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__p.equals(syntax))
				emit_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__q_PropertyKeyword_3_0_0_q__a.equals(syntax))
				emit_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__q_PropertyKeyword_3_0_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__a.equals(syntax))
				emit_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__p.equals(syntax))
				emit_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PseudostateInitial_MocKeyword_1_0_2_q.equals(syntax))
				emit_PseudostateInitial_MocKeyword_1_0_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PseudostateInitial_PseudostateKeyword_1_0_0_1_or_StateKeyword_1_0_0_0.equals(syntax))
				emit_PseudostateInitial_PseudostateKeyword_1_0_0_1_or_StateKeyword_1_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PseudostateInitial_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_TransitionKeyword_3_0_1_0_q_RightCurlyBracketKeyword_3_0_2__.equals(syntax))
				emit_PseudostateInitial_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_TransitionKeyword_3_0_1_0_q_RightCurlyBracketKeyword_3_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_PseudostateInitial_TransitionKeyword_3_0_1_0_q.equals(syntax))
				emit_PseudostateInitial_TransitionKeyword_3_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Routine_DesignDebugTraceParserRuleCall_2_a.equals(syntax))
				emit_Routine_DesignDebugTraceParserRuleCall_2_a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Routine___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_2__q.equals(syntax))
				emit_Routine___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_SignalImpl___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q.equals(syntax))
				emit_SignalImpl___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Signal___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q.equals(syntax))
				emit_Signal___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_SimpleState_SemicolonKeyword_5_1_or___LeftCurlyBracketKeyword_5_0_0_RightCurlyBracketKeyword_5_0_2__.equals(syntax))
				emit_SimpleState_SemicolonKeyword_5_1_or___LeftCurlyBracketKeyword_5_0_0_RightCurlyBracketKeyword_5_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_SimpleState___LessThanSignKeyword_2_0_MocKeyword_2_1_q_SimpleKeyword_2_2_GreaterThanSignKeyword_2_3__q.equals(syntax))
				emit_SimpleState___LessThanSignKeyword_2_0_MocKeyword_2_1_q_SimpleKeyword_2_2_GreaterThanSignKeyword_2_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_SlotParameter_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_0_or_EqualsSignKeyword_1_1.equals(syntax))
				emit_SlotParameter_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_0_or_EqualsSignKeyword_1_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_SlotProperty_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_1_or_EqualsSignKeyword_1_0.equals(syntax))
				emit_SlotProperty_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_1_or_EqualsSignKeyword_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_StartState_MocKeyword_1_0_2_q.equals(syntax))
				emit_StartState_MocKeyword_1_0_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_StartState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__.equals(syntax))
				emit_StartState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_StatemachineNamedRegion___IdKeyword_2_0_or_NameKeyword_2_1__q.equals(syntax))
				emit_StatemachineNamedRegion___IdKeyword_2_0_or_NameKeyword_2_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_StatemachineRegion_RegionKeyword_1_1_or_StateKeyword_1_0.equals(syntax))
				emit_StatemachineRegion_RegionKeyword_1_1_or_StateKeyword_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_InoutKeyword_8_1_0_q.equals(syntax))
				emit_Statemachine_InoutKeyword_8_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0.equals(syntax))
				emit_Statemachine_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_OutputKeyword_8_2_0_q.equals(syntax))
				emit_Statemachine_OutputKeyword_8_2_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_ParameterKeyword_7_0_0_q.equals(syntax))
				emit_Statemachine_ParameterKeyword_7_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_ProcedureKeyword_10_0_1_0_q.equals(syntax))
				emit_Statemachine_ProcedureKeyword_10_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_PropertyKeyword_9_0_0_q.equals(syntax))
				emit_Statemachine_PropertyKeyword_9_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_PublicKeyword_9_1_0_q.equals(syntax))
				emit_Statemachine_PublicKeyword_9_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a.equals(syntax))
				emit_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p.equals(syntax))
				emit_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a.equals(syntax))
				emit_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q.equals(syntax))
				emit_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q.equals(syntax))
				emit_Statemachine___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a.equals(syntax))
				emit_Statemachine___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q.equals(syntax))
				emit_Statemachine___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q.equals(syntax))
				emit_Statemachine___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q.equals(syntax))
				emit_Statemachine___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q.equals(syntax))
				emit_Statemachine___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__a.equals(syntax))
				emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__p.equals(syntax))
				emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_StatemachineKeyword_11_0_0_0__q.equals(syntax))
				emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_StatemachineKeyword_11_0_0_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__a.equals(syntax))
				emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__p.equals(syntax))
				emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__a.equals(syntax))
				emit_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__p.equals(syntax))
				emit_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a.equals(syntax))
				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p.equals(syntax))
				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a.equals(syntax))
				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p.equals(syntax))
				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__q_OutputKeyword_8_2_0_q__a.equals(syntax))
				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__q_OutputKeyword_8_2_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a.equals(syntax))
				emit_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p.equals(syntax))
				emit_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a.equals(syntax))
				emit_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p.equals(syntax))
				emit_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InoutKeyword_8_1_0_q__a.equals(syntax))
				emit_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InoutKeyword_8_1_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__a.equals(syntax))
				emit_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__p.equals(syntax))
				emit_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a.equals(syntax))
				emit_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p.equals(syntax))
				emit_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_StructureTypeDefinitionImpl_PropertyKeyword_5_q.equals(syntax))
				emit_StructureTypeDefinitionImpl_PropertyKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_StructureTypeDefinition_PropertyKeyword_7_q.equals(syntax))
				emit_StructureTypeDefinition_PropertyKeyword_7_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_StructureType_PropertyKeyword_3_q.equals(syntax))
				emit_StructureType_PropertyKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_TransitionMoe_MocKeyword_1_0_0_q.equals(syntax))
				emit_TransitionMoe_MocKeyword_1_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_TransitionMoe_PriorKeyword_1_0_2_1_q.equals(syntax))
				emit_TransitionMoe_PriorKeyword_1_0_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_TransitionMoe_PriorKeyword_1_1_0_q.equals(syntax))
				emit_TransitionMoe_PriorKeyword_1_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Transition_GuardKeyword_6_0_1_0_1_1_q.equals(syntax))
				emit_Transition_GuardKeyword_6_0_1_0_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Transition_GuardKeyword_6_1_2_0_1_0_1_1_q.equals(syntax))
				emit_Transition_GuardKeyword_6_1_2_0_1_0_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Transition_SemicolonKeyword_6_1_2_1_or___LeftCurlyBracketKeyword_6_1_2_0_0___TriggerKeyword_6_1_2_0_1_0_0_0_q_GuardKeyword_6_1_2_0_1_0_1_1_q_TguardKeyword_6_1_2_0_1_0_2_1_q_EffectKeyword_6_1_2_0_1_0_3__q_RightCurlyBracketKeyword_6_1_2_0_2__.equals(syntax))
				emit_Transition_SemicolonKeyword_6_1_2_1_or___LeftCurlyBracketKeyword_6_1_2_0_0___TriggerKeyword_6_1_2_0_1_0_0_0_q_GuardKeyword_6_1_2_0_1_0_1_1_q_TguardKeyword_6_1_2_0_1_0_2_1_q_EffectKeyword_6_1_2_0_1_0_3__q_RightCurlyBracketKeyword_6_1_2_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Transition_TguardKeyword_6_0_1_0_2_1_q.equals(syntax))
				emit_Transition_TguardKeyword_6_0_1_0_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Transition_TguardKeyword_6_1_2_0_1_0_2_1_q.equals(syntax))
				emit_Transition_TguardKeyword_6_1_2_0_1_0_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Transition_TriggerKeyword_6_0_1_0_0_0_q.equals(syntax))
				emit_Transition_TriggerKeyword_6_0_1_0_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Transition_TriggerKeyword_6_1_2_0_1_0_0_0_q.equals(syntax))
				emit_Transition_TriggerKeyword_6_1_2_0_1_0_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Transition___TriggerKeyword_6_0_1_0_0_0_q_GuardKeyword_6_0_1_0_1_1_q_TguardKeyword_6_0_1_0_2_1_q_EffectKeyword_6_0_1_0_3__q.equals(syntax))
				emit_Transition___TriggerKeyword_6_0_1_0_0_0_q_GuardKeyword_6_0_1_0_1_1_q_TguardKeyword_6_0_1_0_2_1_q_EffectKeyword_6_0_1_0_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UnionTypeDefinitionImpl_PropertyKeyword_5_q.equals(syntax))
				emit_UnionTypeDefinitionImpl_PropertyKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UnionTypeDefinition_PropertyKeyword_7_q.equals(syntax))
				emit_UnionTypeDefinition_PropertyKeyword_7_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UnionType_PropertyKeyword_3_q.equals(syntax))
				emit_UnionType_PropertyKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_VariableImpl_VarKeyword_1_2_2_q.equals(syntax))
				emit_VariableImpl_VarKeyword_1_2_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_VariableImpl_VarKeyword_1_3_1_0_q.equals(syntax))
				emit_VariableImpl_VarKeyword_1_3_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_VariableRoutineParameter_FormalParameterOffsetParserRuleCall_0_q.equals(syntax))
				emit_VariableRoutineParameter_FormalParameterOffsetParserRuleCall_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Variable_VarKeyword_1_2_2_q.equals(syntax))
				emit_Variable_VarKeyword_1_2_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Variable_VarKeyword_1_3_1_0_q.equals(syntax))
				emit_Variable_VarKeyword_1_3_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaPrologAttribute_VersionKeyword_1_1_q.equals(syntax))
				emit_XliaPrologAttribute_VersionKeyword_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_BehaviorKeyword_10_0_0_q.equals(syntax))
				emit_XliaSystem_BehaviorKeyword_10_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1.equals(syntax))
				emit_XliaSystem_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0.equals(syntax))
				emit_XliaSystem_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_ModelKeyword_9_1_0_q.equals(syntax))
				emit_XliaSystem_ModelKeyword_9_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_ProcedureKeyword_8_0_1_0_q.equals(syntax))
				emit_XliaSystem_ProcedureKeyword_8_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_PrototypeKeyword_9_2_0_q.equals(syntax))
				emit_XliaSystem_PrototypeKeyword_9_2_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_StatemachineKeyword_10_1_0_q.equals(syntax))
				emit_XliaSystem_StatemachineKeyword_10_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a.equals(syntax))
				emit_XliaSystem___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q.equals(syntax))
				emit_XliaSystem___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q.equals(syntax))
				emit_XliaSystem___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem___ModelKeyword_9_1_0_q_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q.equals(syntax))
				emit_XliaSystem___ModelKeyword_9_1_0_q_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a.equals(syntax))
				emit_XliaSystem___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a.equals(syntax))
				emit_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p.equals(syntax))
				emit_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a.equals(syntax))
				emit_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a.equals(syntax))
				emit_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p.equals(syntax))
				emit_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a.equals(syntax))
				emit_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a.equals(syntax))
				emit_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p.equals(syntax))
				emit_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a.equals(syntax))
				emit_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p.equals(syntax))
				emit_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a.equals(syntax))
				emit_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p.equals(syntax))
				emit_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a.equals(syntax))
				emit_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p.equals(syntax))
				emit_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a.equals(syntax))
				emit_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p.equals(syntax))
				emit_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_moeRoutine___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q.equals(syntax))
				emit_moeRoutine___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else acceptNodes(getLastNavigableState(), syntaxNodes);
		}
	}

	/**
	 * Ambiguous syntax:
	 *     '('*
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$any$none' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$any$none' '<' type=AnyDataTypeReference
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$any' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$any' '<' type=AnyDataTypeReference
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$env' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$none' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$none' '<' type=AnyDataTypeReference
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$null' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$null' '<' type=NullPrimitiveInstanceType
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$optional' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$optional' '<' type=AnyDataTypeReference
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$parent' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$parent' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$self' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$self' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$super' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$super' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$system' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '$this' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '(:' args+=Expression
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '(:' leftHandSide=LeftHandSideExpression
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '<' datatype=DataType
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) 'ctor' '<' datatype=[DataType|ESUfid]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) 'newfresh' leftHandSide=LeftHandSideExpression
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '{' '}' ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '{' value+=Expression
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) '{' value+=NamedExpression
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) ('$delta' | '$delta#initial') ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) ('$time' | '$time#initial') ')' (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) ('spec::' | '::')? element=[NamedElement|ESIdentifier]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) instance=DynamicInstanceSpecification
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) leftHandSide=LeftHandSideExpression
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) numerator=EInteger
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) operator='!'
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) operator='not'
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) operator='~'
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) operator=AffixOperator
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) operator=ArithmeticUnaryOperator
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) quantifier='exists'
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) quantifier='forall'
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) value=EBoolean
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) value=ECharacter
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) value=EDouble
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) value=EInteger
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) value=EString
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) {ArithmeticAssociativeExpression.operand+=}
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) {BitwiseAssociativeExpression.operand+=}
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) {ConditionalTestExpression.condition=}
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) {EqualityBinaryExpression.leftOperand=}
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) {LogicalAssociativeExpression.operand+=}
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) {RelationalBinaryExpression.leftOperand=}
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) {RelationalTernaryExpression.leftRelation=}
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') (ambiguity) {ValueElementSpecification.parent=}
	 *     (rule start) (ambiguity) '$any$none' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '$any$none' (rule start)
	 *     (rule start) (ambiguity) '$any' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '$any' (rule start)
	 *     (rule start) (ambiguity) '$env' (rule start)
	 *     (rule start) (ambiguity) '$none' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '$none' (rule start)
	 *     (rule start) (ambiguity) '$null' '<' type=NullPrimitiveInstanceType
	 *     (rule start) (ambiguity) '$null' (rule start)
	 *     (rule start) (ambiguity) '$optional' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '$optional' (rule start)
	 *     (rule start) (ambiguity) '$parent' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) (ambiguity) '$parent' (rule start)
	 *     (rule start) (ambiguity) '$self' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) (ambiguity) '$self' (rule start)
	 *     (rule start) (ambiguity) '$super' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) (ambiguity) '$super' (rule start)
	 *     (rule start) (ambiguity) '$system' (rule start)
	 *     (rule start) (ambiguity) '$this' (rule start)
	 *     (rule start) (ambiguity) '(:' args+=Expression
	 *     (rule start) (ambiguity) '(:' leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) '<' datatype=DataType
	 *     (rule start) (ambiguity) 'ctor' '<' datatype=[DataType|ESUfid]
	 *     (rule start) (ambiguity) 'newfresh' leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) '{' '}' (rule start)
	 *     (rule start) (ambiguity) '{' value+=Expression
	 *     (rule start) (ambiguity) '{' value+=NamedExpression
	 *     (rule start) (ambiguity) ('$delta' | '$delta#initial') (rule start)
	 *     (rule start) (ambiguity) ('$time' | '$time#initial') (rule start)
	 *     (rule start) (ambiguity) ('spec::' | '::')? element=[NamedElement|ESIdentifier]
	 *     (rule start) (ambiguity) instance=DynamicInstanceSpecification
	 *     (rule start) (ambiguity) leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) numerator=EInteger
	 *     (rule start) (ambiguity) operator='!'
	 *     (rule start) (ambiguity) operator='not'
	 *     (rule start) (ambiguity) operator='~'
	 *     (rule start) (ambiguity) operator=AffixOperator
	 *     (rule start) (ambiguity) operator=ArithmeticUnaryOperator
	 *     (rule start) (ambiguity) quantifier='exists'
	 *     (rule start) (ambiguity) quantifier='forall'
	 *     (rule start) (ambiguity) value=EBoolean
	 *     (rule start) (ambiguity) value=ECharacter
	 *     (rule start) (ambiguity) value=EDouble
	 *     (rule start) (ambiguity) value=EInteger
	 *     (rule start) (ambiguity) value=EString
	 *     (rule start) (ambiguity) {ArithmeticAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) {BitwiseAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) {ConditionalTestExpression.condition=}
	 *     (rule start) (ambiguity) {EqualityBinaryExpression.leftOperand=}
	 *     (rule start) (ambiguity) {LogicalAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) {RelationalBinaryExpression.leftOperand=}
	 *     (rule start) (ambiguity) {RelationalTernaryExpression.leftRelation=}
	 *     (rule start) (ambiguity) {ValueElementSpecification.parent=}
	 */
	protected void emit_BaseExpression_LeftParenthesisKeyword_1_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '('+
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '$any$none' ')' (rule start)
	 *     (rule start) (ambiguity) '$any$none' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '$any' ')' (rule start)
	 *     (rule start) (ambiguity) '$any' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '$none' ')' (rule start)
	 *     (rule start) (ambiguity) '$none' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '$null' ')' (rule start)
	 *     (rule start) (ambiguity) '$null' '<' type=NullPrimitiveInstanceType
	 *     (rule start) (ambiguity) '$optional' ')' (rule start)
	 *     (rule start) (ambiguity) '$optional' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '(:' leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) 'ctor' '<' datatype=[DataType|ESUfid]
	 *     (rule start) (ambiguity) 'newfresh' leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) numerator=EInteger
	 *     (rule start) (ambiguity) operator='!'
	 *     (rule start) (ambiguity) operator='not'
	 *     (rule start) (ambiguity) operator='~'
	 *     (rule start) (ambiguity) operator=AffixOperator
	 *     (rule start) (ambiguity) operator=ArithmeticUnaryOperator
	 *     (rule start) (ambiguity) quantifier='exists'
	 *     (rule start) (ambiguity) quantifier='forall'
	 *     (rule start) (ambiguity) value=EBoolean
	 *     (rule start) (ambiguity) value=ECharacter
	 *     (rule start) (ambiguity) value=EDouble
	 *     (rule start) (ambiguity) value=EInteger
	 *     (rule start) (ambiguity) value=EString
	 *     (rule start) (ambiguity) {ArithmeticAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) {BitwiseAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) {ConditionalTestExpression.condition=}
	 *     (rule start) (ambiguity) {EqualityBinaryExpression.leftOperand=}
	 *     (rule start) (ambiguity) {LogicalAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) {RelationalBinaryExpression.leftOperand=}
	 *     (rule start) (ambiguity) {RelationalTernaryExpression.leftRelation=}
	 *     (rule start) (ambiguity) {ValueElementSpecification.parent=}
	 */
	protected void emit_BaseExpression_LeftParenthesisKeyword_1_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@behavior:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     behavior+=Behavior (ambiguity) behavior+=Behavior
	 */
	protected void emit_BehaviorPart_BehaviorKeyword_1_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@statemachine:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     behavior+=Statemachine (ambiguity) behavior+=Statemachine
	 */
	protected void emit_BehaviorPart_StatemachineKeyword_1_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'input' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_BlockParameterSet___RightCurlyBracketKeyword_1_0_1_1_2_InputKeyword_1_0_0_LeftCurlyBracketKeyword_1_0_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'inout' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_BlockParameterSet___RightCurlyBracketKeyword_1_1_1_1_2_InoutKeyword_1_1_0_LeftCurlyBracketKeyword_1_1_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'output' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_BlockParameterSet___RightCurlyBracketKeyword_1_2_1_1_2_OutputKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'return' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_BlockParameterSet___RightCurlyBracketKeyword_1_3_1_1_2_ReturnKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'size:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     container=BufferContainerKind '<' (ambiguity) size=EInt
	 */
	protected void emit_BufferContainerType_SizeKeyword_2_0_1_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'size:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     container=BufferContainerKind '[' (ambiguity) size=EInt
	 */
	protected void emit_BufferContainerType_SizeKeyword_2_1_1_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('<' '>') | ('[' ']'))?
	 *
	 * This ambiguous syntax occurs at:
	 *     container=BufferContainerKind (ambiguity) (rule end)
	 */
	protected void emit_BufferContainerType_____LeftSquareBracketKeyword_2_1_0_RightSquareBracketKeyword_2_1_2___or___LessThanSignKeyword_2_0_0_GreaterThanSignKeyword_2_0_2____q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     typedef?='choice' '{' (ambiguity) property+=Variable
	 */
	protected void emit_ChoiceTypeDefinitionImpl_PropertyKeyword_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier 'choice' '{' (ambiguity) property+=Variable
	 *     unrestrictedName=UnrestrictedName 'choice' '{' (ambiguity) property+=Variable
	 */
	protected void emit_ChoiceTypeDefinition_PropertyKeyword_7_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'choice' '{' (ambiguity) property+=Variable
	 */
	protected void emit_ChoiceType_PropertyKeyword_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'empty(' | 'nonempty(' | 'size('
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '('* '$any$none' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$any$none' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '('* '$any' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$any' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '('* '$env' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$none' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$none' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '('* '$null' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$null' '<' type=NullPrimitiveInstanceType
	 *     (rule start) (ambiguity) '('* '$optional' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$optional' '<' type=AnyDataTypeReference
	 *     (rule start) (ambiguity) '('* '$parent' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$parent' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) (ambiguity) '('* '$self' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$self' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) (ambiguity) '('* '$super' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$super' '<' 'model:'? model=[Machine|ESUfid]
	 *     (rule start) (ambiguity) '('* '$system' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '$this' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '(:' args+=Expression
	 *     (rule start) (ambiguity) '('* '(:' leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) '('* '<' datatype=DataType
	 *     (rule start) (ambiguity) '('* 'ctor' '<' datatype=[DataType|ESUfid]
	 *     (rule start) (ambiguity) '('* 'newfresh' leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) '('* '{' '}' ')' (rule start)
	 *     (rule start) (ambiguity) '('* '{' value+=Expression
	 *     (rule start) (ambiguity) '('* '{' value+=NamedExpression
	 *     (rule start) (ambiguity) '('* ('$delta' | '$delta#initial') ')' (rule start)
	 *     (rule start) (ambiguity) '('* ('$time' | '$time#initial') ')' (rule start)
	 *     (rule start) (ambiguity) '('* ('spec::' | '::')? element=[NamedElement|ESIdentifier]
	 *     (rule start) (ambiguity) '('* instance=DynamicInstanceSpecification
	 *     (rule start) (ambiguity) '('* leftHandSide=LeftHandSideExpression
	 *     (rule start) (ambiguity) '('* numerator=EInteger
	 *     (rule start) (ambiguity) '('* operator='!'
	 *     (rule start) (ambiguity) '('* operator='not'
	 *     (rule start) (ambiguity) '('* operator='~'
	 *     (rule start) (ambiguity) '('* operator=AffixOperator
	 *     (rule start) (ambiguity) '('* operator=ArithmeticUnaryOperator
	 *     (rule start) (ambiguity) '('* quantifier='exists'
	 *     (rule start) (ambiguity) '('* quantifier='forall'
	 *     (rule start) (ambiguity) '('* value=EBoolean
	 *     (rule start) (ambiguity) '('* value=ECharacter
	 *     (rule start) (ambiguity) '('* value=EDouble
	 *     (rule start) (ambiguity) '('* value=EInteger
	 *     (rule start) (ambiguity) '('* value=EString
	 *     (rule start) (ambiguity) '('* {ArithmeticAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) '('* {BitwiseAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) '('* {ConditionalTestExpression.condition=}
	 *     (rule start) (ambiguity) '('* {EqualityBinaryExpression.leftOperand=}
	 *     (rule start) (ambiguity) '('* {LogicalAssociativeExpression.operand+=}
	 *     (rule start) (ambiguity) '('* {RelationalBinaryExpression.leftOperand=}
	 *     (rule start) (ambiguity) '('* {RelationalTernaryExpression.leftRelation=}
	 *     (rule start) (ambiguity) '('* {ValueElementSpecification.parent=}
	 */
	protected void emit_CollectionFunctionExpression_EmptyKeyword_0_0_or_NonemptyKeyword_1_0_or_SizeKeyword_2_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '.' | '->'
	 *
	 * This ambiguous syntax occurs at:
	 *     parent+=LiteralReferenceExpression (ambiguity) element=BufferReferenceElement
	 *     parent+=LiteralReferenceExpression (ambiguity) parent+=LiteralReferenceExpression
	 */
	protected void emit_ComBufferRef_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '->' | '.'
	 *
	 * This ambiguous syntax occurs at:
	 *     machine=[NamedElement|ESIdentifier] (ambiguity) port=[Port|ESIdentifier]
	 */
	protected void emit_ComPoint_FullStopKeyword_1_1_1_or_HyphenMinusGreaterThanSignKeyword_1_1_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@composite:' | '@machine:'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     (rule start) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     instance+=InstanceMachine '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_CompositePart_CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@routine:' | '@macro:'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) routine+=Routine
	 *     procedure+=Procedure (ambiguity) routine+=Routine
	 */
	protected void emit_CompositePart_MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@model:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     (rule start) (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     instance+=InstanceMachine (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     routine+=Routine (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 */
	protected void emit_CompositePart_ModelKeyword_2_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@procedure:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     procedure+=Procedure (ambiguity) procedure+=Procedure
	 */
	protected void emit_CompositePart_ProcedureKeyword_1_0_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@model:' | '@prototype:' | '@instance:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) (rule start)
	 *     instance+=InstanceMachine (ambiguity) (rule end)
	 *     machine+=AnyMachineBlock (ambiguity) (rule end)
	 *     procedure+=Procedure (ambiguity) (rule end)
	 *     routine+=Routine (ambiguity) (rule end)
	 */
	protected void emit_CompositePart___InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@routine:' | '@macro:')?
	 *
	 * This ambiguous syntax occurs at:
	 *     routine+=Routine (ambiguity) routine+=Routine
	 */
	protected void emit_CompositePart___MacroKeyword_1_0_0_0_1_or_RoutineKeyword_1_0_0_0_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:'))?
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_CompositePart___ModelKeyword_2_1_0_q_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a___CompositeKeyword_2_0_0_0_or_MachineKeyword_2_0_0_1____q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@instance:')* '@prototype:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@instance:')* '@prototype:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_CompositePart_____InstanceKeyword_2_3_0_or_ModelKeyword_2_1_0__a_PrototypeKeyword_2_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@prototype:' | '@instance:')* '@model:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@prototype:' | '@instance:')* '@model:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__a_ModelKeyword_2_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@prototype:' | '@instance:')? '@model:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     (rule start) '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     instance+=InstanceMachine '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     instance+=InstanceMachine '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     machine+=AnyMachineBlock '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     procedure+=Procedure '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     procedure+=Procedure '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     routine+=Routine '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     routine+=Routine '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 */
	protected void emit_CompositePart_____InstanceKeyword_2_3_0_or_PrototypeKeyword_2_2_0__q_ModelKeyword_2_1_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:')* '@instance:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 */
	protected void emit_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:')* '@instance:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) instance+=InstanceMachine
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine (ambiguity) instance+=InstanceMachine
	 */
	protected void emit_CompositePart_____ModelKeyword_2_1_0_or_PrototypeKeyword_2_2_0__a_InstanceKeyword_2_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'moc:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     composite?='state' '<' (ambiguity) 'or' '>' name=ESIdentifier
	 *     composite?='state' '<' (ambiguity) orthogonal?='and'
	 */
	protected void emit_CompositeState_MocKeyword_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '@transition:'* '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) (rule end)
	 */
	protected void emit_CompositeState_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_TransitionKeyword_8_0_1_0_2_0_a_RightCurlyBracketKeyword_8_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@transition:'*
	 *
	 * This ambiguous syntax occurs at:
	 *     moe=moeCompositeStateRoutines (ambiguity) '@moe:' moe=moeCompositeStateRoutines
	 *     moe=moeCompositeStateRoutines (ambiguity) '}' (rule end)
	 *     moe=moeCompositeStateRoutines (ambiguity) region+=StatemachineNamedRegion
	 *     moe=moeCompositeStateRoutines (ambiguity) region+=StatemachineRegion
	 *     name=ESIdentifier '{' (ambiguity) '@moe:' moe=moeCompositeStateRoutines
	 *     name=ESIdentifier '{' (ambiguity) region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' (ambiguity) region+=StatemachineRegion
	 *     region+=StatemachineNamedRegion (ambiguity) '@moe:' moe=moeCompositeStateRoutines
	 *     region+=StatemachineNamedRegion (ambiguity) '}' (rule end)
	 *     region+=StatemachineNamedRegion (ambiguity) region+=StatemachineNamedRegion
	 *     region+=StatemachineNamedRegion (ambiguity) region+=StatemachineRegion
	 *     region+=StatemachineRegion (ambiguity) '@moe:' moe=moeCompositeStateRoutines
	 *     region+=StatemachineRegion (ambiguity) '}' (rule end)
	 *     region+=StatemachineRegion (ambiguity) region+=StatemachineNamedRegion
	 *     region+=StatemachineRegion (ambiguity) region+=StatemachineRegion
	 *     transition+=Transition (ambiguity) '@moe:' moe=moeCompositeStateRoutines
	 *     transition+=Transition (ambiguity) '}' (rule end)
	 *     transition+=Transition (ambiguity) region+=StatemachineNamedRegion
	 *     transition+=Transition (ambiguity) region+=StatemachineRegion
	 *     transition+=Transition (ambiguity) transition+=Transition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@moe:' moe=moeCompositeStateRoutines
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) region+=StatemachineRegion
	 */
	protected void emit_CompositeState_TransitionKeyword_8_0_1_0_2_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@transition:'+
	 *
	 * This ambiguous syntax occurs at:
	 *     moe=moeCompositeStateRoutines (ambiguity) transition+=Transition
	 *     name=ESIdentifier '{' (ambiguity) transition+=Transition
	 *     region+=StatemachineNamedRegion (ambiguity) transition+=Transition
	 *     region+=StatemachineRegion (ambiguity) transition+=Transition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) transition+=Transition
	 */
	protected void emit_CompositeState_TransitionKeyword_8_0_1_0_2_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'connector' | 'connect'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '<' protocol=ComProtocol
	 */
	protected void emit_Connector_ConnectKeyword_0_1_or_ConnectorKeyword_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     model=[Machine|ESIdentifier] ('(' ')')? (ambiguity) (rule end)
	 *     slot+=SlotParameter ')' (ambiguity) (rule end)
	 */
	protected void emit_DynamicInstanceSpecification___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     model=[Machine|ESIdentifier] (ambiguity) '{' slot+=SlotProperty
	 *     model=[Machine|ESIdentifier] (ambiguity) ('{' '}')? (rule end)
	 */
	protected void emit_DynamicInstanceSpecification___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'elseif' | ('else' 'if')
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) condition=Expression
	 */
	protected void emit_ElseIfStatement_ElseifKeyword_0_0_or___ElseKeyword_0_1_0_IfKeyword_0_1_1__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'moc:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) ('state' | 'pseudostate') '<' (ambiguity) kind=EndingPseudostateKind
	 */
	protected void emit_EndingPseudostate_MocKeyword_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@moe:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier '{' (ambiguity) moe=moeFinalStateRoutines
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) moe=moeFinalStateRoutines
	 */
	protected void emit_EndingPseudostate_MoeKeyword_8_0_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'state' | 'pseudostate'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '<' 'moc:'? kind=EndingPseudostateKind
	 */
	protected void emit_EndingPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) (rule end)
	 */
	protected void emit_EndingPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'moc:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     simple?='state' '<' (ambiguity) 'final' '>' name=ESIdentifier
	 */
	protected void emit_FinalState_MocKeyword_1_0_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@moe:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier '{' (ambiguity) moe=moeFinalStateRoutines
	 *     simple?='#final' '{' (ambiguity) moe=moeFinalStateRoutines
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) moe=moeFinalStateRoutines
	 */
	protected void emit_FinalState_MoeKeyword_3_0_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) (rule end)
	 *     simple?='#final' (ambiguity) (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) (rule end)
	 */
	protected void emit_FinalState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     FormalParameterOffset?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) direction=ParameterDirectionKind
	 *     (rule start) (ambiguity) modifier=Modifier
	 *     (rule start) (ambiguity) type=DataType
	 */
	protected void emit_FormalParameter_FormalParameterOffsetParserRuleCall_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) '->' '(' resultSet=FormalParameterSet
	 *     name=ESIdentifier (ambiguity) '->' resultSet=FormalParameterSet
	 *     unrestrictedName=UnrestrictedName (ambiguity) '->' '(' resultSet=FormalParameterSet
	 *     unrestrictedName=UnrestrictedName (ambiguity) '->' resultSet=FormalParameterSet
	 */
	protected void emit_FunctionImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) '->' '(' resultSet=FormalParameterSet
	 *     name=ESIdentifier (ambiguity) '->' resultSet=FormalParameterSet
	 *     unrestrictedName=UnrestrictedName (ambiguity) '->' '(' resultSet=FormalParameterSet
	 *     unrestrictedName=UnrestrictedName (ambiguity) '->' resultSet=FormalParameterSet
	 */
	protected void emit_Function___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '<==' | 'via'
	 *
	 * This ambiguous syntax occurs at:
	 *     leftValue+=Expression ')' (ambiguity) route=[Channel|ESUfid]
	 *     port=LitteralComElement (ambiguity) route=[Channel|ESUfid]
	 *     route=[Channel|ESUfid] (ambiguity) route=[Channel|ESUfid]
	 *     target=LiteralPureReferenceExpression (ambiguity) route=[Channel|ESUfid]
	 */
	protected void emit_InputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'model:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'instance' ('machine' | 'statemachine')? '<' (ambiguity) model=[Machine|ESUfid]
	 */
	protected void emit_InstanceMachine_ModelKeyword_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier ('(' ')')? (ambiguity) (rule end)
	 *     slot+=SlotParameter ')' (ambiguity) (rule end)
	 *     unrestrictedName=UnrestrictedName ('(' ')')? (ambiguity) (rule end)
	 */
	protected void emit_InstanceMachine_SemicolonKeyword_9_1_or___LeftCurlyBracketKeyword_9_0_0_RightCurlyBracketKeyword_9_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) '{' slot+=SlotProperty
	 *     name=ESIdentifier (ambiguity) (('{' '}') | ';') (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' slot+=SlotProperty
	 *     unrestrictedName=UnrestrictedName (ambiguity) (('{' '}') | ';') (rule end)
	 */
	protected void emit_InstanceMachine___LeftParenthesisKeyword_8_0_RightParenthesisKeyword_8_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('machine' | 'statemachine')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'instance' (ambiguity) '<' 'model:'? model=[Machine|ESUfid]
	 */
	protected void emit_InstanceMachine___MachineKeyword_1_0_or_StatemachineKeyword_1_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'model:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '$parent' '<' (ambiguity) model=[Machine|ESUfid]
	 *     (rule start) '('* '$parent' '<' (ambiguity) model=[Machine|ESUfid]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') '('* '$parent' '<' (ambiguity) model=[Machine|ESUfid]
	 */
	protected void emit_LiteralParentExpression_ModelKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('spec::' | '::')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) element=[NamedElement|ESIdentifier]
	 */
	protected void emit_LiteralPureReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('spec::' | '::')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '('* (ambiguity) element=[NamedElement|ESIdentifier]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') '('* (ambiguity) element=[NamedElement|ESIdentifier]
	 *     (rule start) (ambiguity) element=[NamedElement|ESIdentifier]
	 */
	protected void emit_LiteralReferenceElement___ColonColonKeyword_1_1_or_SpecKeyword_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '.' | '->'
	 *
	 * This ambiguous syntax occurs at:
	 *     parent+=LiteralReferenceExpression (ambiguity) element=LiteralReferenceExpression
	 *     parent+=LiteralReferenceExpression (ambiguity) parent+=LiteralReferenceExpression
	 */
	protected void emit_LiteralReferenceSpecification_FullStopKeyword_1_1_0_or_HyphenMinusGreaterThanSignKeyword_1_1_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'model:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '$self' '<' (ambiguity) model=[Machine|ESUfid]
	 *     (rule start) '('* '$self' '<' (ambiguity) model=[Machine|ESUfid]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') '('* '$self' '<' (ambiguity) model=[Machine|ESUfid]
	 */
	protected void emit_LiteralSelfExpression_ModelKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'model:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '$super' '<' (ambiguity) model=[Machine|ESUfid]
	 *     (rule start) '('* '$super' '<' (ambiguity) model=[Machine|ESUfid]
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') '('* '$super' '<' (ambiguity) model=[Machine|ESUfid]
	 */
	protected void emit_LiteralSuperExpression_ModelKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '$delta' | '$delta#initial'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '('* (ambiguity) (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') '('* (ambiguity) ')' (rule start)
	 *     (rule start) (ambiguity) (rule start)
	 */
	protected void emit_LiteralTimeDeltaExpression_LiteralTimeDeltaInitialExpression_DeltaInitialKeyword_1_or_DeltaKeyword_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '$time' | '$time#initial'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '('* (ambiguity) (rule start)
	 *     (rule start) ('empty(' | 'nonempty(' | 'size(') '('* (ambiguity) ')' (rule start)
	 *     (rule start) (ambiguity) (rule start)
	 */
	protected void emit_LiteralTimeExpression_LiteralTimeInitialExpression_TimeInitialKeyword_1_or_TimeKeyword_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '&&' | 'and'
	 *
	 * This ambiguous syntax occurs at:
	 *     operand+=BitwiseOrExpression (ambiguity) operand+=BitwiseOrExpression
	 */
	protected void emit_LogicalAndExpression_AmpersandAmpersandKeyword_1_3_0_0_or_AndKeyword_1_3_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '||' | 'or'
	 *
	 * This ambiguous syntax occurs at:
	 *     operand+=LogicalAndExpression (ambiguity) operand+=LogicalAndExpression
	 */
	protected void emit_LogicalOrExpression_OrKeyword_1_3_0_1_or_VerticalLineVerticalLineKeyword_1_3_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@behavior:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     behavior+=Behavior (ambiguity) behavior+=Behavior
	 */
	protected void emit_MachineBlock_BehaviorKeyword_10_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@composite:' | '@machine:'
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     instance+=InstanceMachine ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@model:' | '@prototype:' | '@instance:')* (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_MachineBlock_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'machine' | 'executable'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')? name=ESIdentifier
	 *     dense_timed?='timed#dense' (ambiguity) ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')? name=ESIdentifier
	 *     design=DesignKind (ambiguity) ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')? name=ESIdentifier
	 *     discrete_timed?='timed#discrete' (ambiguity) ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')? name=ESIdentifier
	 *     input_enabled?='input_enabled' (ambiguity) ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')? name=ESIdentifier
	 *     lifeline?='lifeline' (ambiguity) ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')? name=ESIdentifier
	 *     timed?='timed' (ambiguity) ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')? name=ESIdentifier
	 *     visibility=VisibilityKind (ambiguity) ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')? name=ESIdentifier
	 */
	protected void emit_MachineBlock_ExecutableKeyword_1_1_or_MachineKeyword_1_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@routine:' | '@macro:'
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     procedure+=Procedure (ambiguity) routine+=Routine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 */
	protected void emit_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@procedure:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     procedure+=Procedure (ambiguity) procedure+=Procedure
	 */
	protected void emit_MachineBlock_ProcedureKeyword_8_0_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@public:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@model:' | '@prototype:' | '@instance:')* 
	 *         ('@composite:' | '@machine:') 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@model:' | '@prototype:' | '@instance:')* 
	 *         ('@composite:' | '@machine:') 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     name=ESIdentifier '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     name=ESIdentifier '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 */
	protected void emit_MachineBlock_PublicKeyword_7_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@statemachine:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     behavior+=Statemachine (ambiguity) behavior+=Statemachine
	 */
	protected void emit_MachineBlock_StatemachineKeyword_10_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@model:' | '@prototype:' | '@instance:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     instance+=InstanceMachine (ambiguity) '@behavior:' behavior+=Behavior
	 *     instance+=InstanceMachine (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     instance+=InstanceMachine (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     instance+=InstanceMachine (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) main=MoeBehavior
	 *     machine+=AnyMachineBlock (ambiguity) '@behavior:' behavior+=Behavior
	 *     machine+=AnyMachineBlock (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     machine+=AnyMachineBlock (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) main=MoeBehavior
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     procedure+=Procedure (ambiguity) '@behavior:' behavior+=Behavior
	 *     procedure+=Procedure (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     procedure+=Procedure (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) main=MoeBehavior
	 *     routine+=Routine (ambiguity) '@behavior:' behavior+=Behavior
	 *     routine+=Routine (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     routine+=Routine (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     routine+=Routine (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) main=MoeBehavior
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) main=MoeBehavior
	 */
	protected void emit_MachineBlock___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('<' ('moc:'? ModelOfComputationKing)? ('instance:' '[' ('+' | '*' | ('init:' EInteger 'max:' EInteger)) ']')? '>')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) ('machine' | 'executable') (ambiguity) name=ESIdentifier
	 *     dense_timed?='timed#dense' ('machine' | 'executable') (ambiguity) name=ESIdentifier
	 *     design=DesignKind ('machine' | 'executable') (ambiguity) name=ESIdentifier
	 *     discrete_timed?='timed#discrete' ('machine' | 'executable') (ambiguity) name=ESIdentifier
	 *     input_enabled?='input_enabled' ('machine' | 'executable') (ambiguity) name=ESIdentifier
	 *     lifeline?='lifeline' ('machine' | 'executable') (ambiguity) name=ESIdentifier
	 *     timed?='timed' ('machine' | 'executable') (ambiguity) name=ESIdentifier
	 *     visibility=VisibilityKind ('machine' | 'executable') (ambiguity) name=ESIdentifier
	 */
	protected void emit_MachineBlock___LessThanSignKeyword_2_0___MocKeyword_2_1_0_q_ModelOfComputationKingParserRuleCall_2_1_1__q___InstanceKeyword_2_2_0_LeftSquareBracketKeyword_2_2_1___AsteriskKeyword_2_2_2_1_or_PlusSignKeyword_2_2_2_0_or___InitKeyword_2_2_2_2_0_EIntegerParserRuleCall_2_2_2_2_1_MaxKeyword_2_2_2_2_2_EIntegerParserRuleCall_2_2_2_2_3_____RightSquareBracketKeyword_2_2_3__q_GreaterThanSignKeyword_2_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@routine:' | '@macro:')?
	 *
	 * This ambiguous syntax occurs at:
	 *     routine+=Routine (ambiguity) routine+=Routine
	 */
	protected void emit_MachineBlock___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@property:' | '@public:' | '@protected:' | '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer (ambiguity) procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) routine+=Routine
	 *     channel+=Channel (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=Channel (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel (ambiguity) procedure+=Procedure
	 *     channel+=Channel (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) routine+=Routine
	 *     function+=Function (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=Function (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function (ambiguity) procedure+=Procedure
	 *     function+=Function (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) routine+=Routine
	 *     function+=FunctionProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionProtected (ambiguity) procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) routine+=Routine
	 *     function+=FunctionPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPublic (ambiguity) procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) routine+=Routine
	 *     port+=Port (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=Port (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port (ambiguity) procedure+=Procedure
	 *     port+=Port (ambiguity) routine+=Routine
	 *     port+=PortPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPrivate (ambiguity) procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) routine+=Routine
	 *     port+=PortProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortProtected (ambiguity) procedure+=Procedure
	 *     port+=PortProtected (ambiguity) routine+=Routine
	 *     port+=PortPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPublic (ambiguity) procedure+=Procedure
	 *     port+=PortPublic (ambiguity) routine+=Routine
	 *     signal+=Signal (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=Signal (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal (ambiguity) procedure+=Procedure
	 *     signal+=Signal (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) routine+=Routine
	 *     signal+=SignalProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalProtected (ambiguity) procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) routine+=Routine
	 *     signal+=SignalPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPublic (ambiguity) procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) routine+=Routine
	 *     variable+=Variable (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=Variable (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable (ambiguity) procedure+=Procedure
	 *     variable+=Variable (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) routine+=Routine
	 *     variable+=VariableProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariableProtected (ambiguity) procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) routine+=Routine
	 *     variable+=VariablePublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePublic (ambiguity) procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) routine+=Routine
	 */
	protected void emit_MachineBlock___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@instance:')* '@prototype:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@instance:')* '@prototype:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:'))?
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@prototype:' | '@instance:')* '@model:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@prototype:' | '@instance:')* '@model:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:')* '@instance:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 */
	protected void emit_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:')* '@instance:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     name=ESIdentifier '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine (ambiguity) instance+=InstanceMachine
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 */
	protected void emit_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPublic (ambiguity) port+=PortPublic
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPublic (ambiguity) port+=PortPublic
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPublic (ambiguity) port+=PortPublic
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePublic
	 *     port+=PortPublic (ambiguity) buffer+=BufferPublic
	 *     port+=PortPublic (ambiguity) channel+=ChannelPublic
	 *     port+=PortPublic (ambiguity) function+=FunctionPublic
	 *     port+=PortPublic (ambiguity) port+=PortPublic
	 *     port+=PortPublic (ambiguity) signal+=SignalPublic
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPublic (ambiguity) port+=PortPublic
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePublic (ambiguity) port+=PortPublic
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePublic
	 */
	protected void emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) port+=PortPublic
	 *     buffer+=Buffer (ambiguity) signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPublic
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferProtected (ambiguity) port+=PortPublic
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePublic
	 *     channel+=Channel (ambiguity) buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) function+=FunctionPublic
	 *     channel+=Channel (ambiguity) port+=PortPublic
	 *     channel+=Channel (ambiguity) signal+=SignalPublic
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPublic
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelProtected (ambiguity) port+=PortPublic
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePublic
	 *     function+=Function (ambiguity) buffer+=BufferPublic
	 *     function+=Function (ambiguity) channel+=ChannelPublic
	 *     function+=Function (ambiguity) function+=FunctionPublic
	 *     function+=Function (ambiguity) port+=PortPublic
	 *     function+=Function (ambiguity) signal+=SignalPublic
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPrivate (ambiguity) port+=PortPublic
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePublic
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPublic
	 *     function+=FunctionProtected (ambiguity) port+=PortPublic
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPublic
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePublic
	 *     name=ESIdentifier '{' (ambiguity) buffer+=BufferPublic
	 *     name=ESIdentifier '{' (ambiguity) channel+=ChannelPublic
	 *     name=ESIdentifier '{' (ambiguity) function+=FunctionPublic
	 *     name=ESIdentifier '{' (ambiguity) port+=PortPublic
	 *     name=ESIdentifier '{' (ambiguity) signal+=SignalPublic
	 *     name=ESIdentifier '{' (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) variable+=VariablePublic
	 *     port+=Port (ambiguity) buffer+=BufferPublic
	 *     port+=Port (ambiguity) channel+=ChannelPublic
	 *     port+=Port (ambiguity) function+=FunctionPublic
	 *     port+=Port (ambiguity) port+=PortPublic
	 *     port+=Port (ambiguity) signal+=SignalPublic
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePublic
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPublic
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPublic
	 *     port+=PortPrivate (ambiguity) function+=FunctionPublic
	 *     port+=PortPrivate (ambiguity) port+=PortPublic
	 *     port+=PortPrivate (ambiguity) signal+=SignalPublic
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePublic
	 *     port+=PortProtected (ambiguity) buffer+=BufferPublic
	 *     port+=PortProtected (ambiguity) channel+=ChannelPublic
	 *     port+=PortProtected (ambiguity) function+=FunctionPublic
	 *     port+=PortProtected (ambiguity) port+=PortPublic
	 *     port+=PortProtected (ambiguity) signal+=SignalPublic
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePublic
	 *     signal+=Signal (ambiguity) buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) function+=FunctionPublic
	 *     signal+=Signal (ambiguity) port+=PortPublic
	 *     signal+=Signal (ambiguity) signal+=SignalPublic
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPrivate (ambiguity) port+=PortPublic
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePublic
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPublic
	 *     signal+=SignalProtected (ambiguity) port+=PortPublic
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPublic
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) variable+=VariablePublic
	 *     variable+=Variable (ambiguity) buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) function+=FunctionPublic
	 *     variable+=Variable (ambiguity) port+=PortPublic
	 *     variable+=Variable (ambiguity) signal+=SignalPublic
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePrivate (ambiguity) port+=PortPublic
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePublic
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPublic
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPublic
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPublic
	 *     variable+=VariableProtected (ambiguity) port+=PortPublic
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPublic
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePublic
	 */
	protected void emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')? '@public:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     buffer+=Buffer '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     buffer+=BufferProtected '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferProtected '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     buffer+=BufferPublic '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPublic '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     channel+=Channel '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     channel+=Channel '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     channel+=ChannelProtected '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelProtected '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     channel+=ChannelPublic '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPublic '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     function+=Function '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     function+=Function '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     function+=Function '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     function+=FunctionPrivate '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPrivate '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     function+=FunctionProtected '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionProtected '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     function+=FunctionPublic '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPublic '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     name=ESIdentifier '{' '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     name=ESIdentifier '{' '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     port+=Port '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     port+=Port '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     port+=Port '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     port+=PortPrivate '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPrivate '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     port+=PortProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     port+=PortProtected '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortProtected '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     port+=PortPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     port+=PortPublic '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPublic '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     signal+=Signal '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     signal+=Signal '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     signal+=SignalPrivate '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPrivate '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     signal+=SignalProtected '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalProtected '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     signal+=SignalPublic '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPublic '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     variable+=Variable '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     variable+=Variable '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     variable+=VariablePrivate '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePrivate '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     variable+=VariableProtected '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariableProtected '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@model:' | '@prototype:' | '@instance:')* main=MoeBehavior
	 *     variable+=VariablePublic '@public:'? (ambiguity) (('@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (ambiguity) (('@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePublic '@public:'? (ambiguity) (('@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 */
	protected void emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__q_PublicKeyword_7_1_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferProtected (ambiguity) port+=PortProtected
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelProtected (ambiguity) port+=PortProtected
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariableProtected
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionProtected (ambiguity) function+=FunctionProtected
	 *     function+=FunctionProtected (ambiguity) port+=PortProtected
	 *     function+=FunctionProtected (ambiguity) signal+=SignalProtected
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariableProtected
	 *     port+=PortProtected (ambiguity) buffer+=BufferProtected
	 *     port+=PortProtected (ambiguity) channel+=ChannelProtected
	 *     port+=PortProtected (ambiguity) function+=FunctionProtected
	 *     port+=PortProtected (ambiguity) port+=PortProtected
	 *     port+=PortProtected (ambiguity) signal+=SignalProtected
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariableProtected
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalProtected (ambiguity) function+=FunctionProtected
	 *     signal+=SignalProtected (ambiguity) port+=PortProtected
	 *     signal+=SignalProtected (ambiguity) signal+=SignalProtected
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferProtected
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelProtected
	 *     variable+=VariableProtected (ambiguity) function+=FunctionProtected
	 *     variable+=VariableProtected (ambiguity) port+=PortProtected
	 *     variable+=VariableProtected (ambiguity) signal+=SignalProtected
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariableProtected
	 */
	protected void emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) port+=PortProtected
	 *     buffer+=Buffer (ambiguity) signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPrivate (ambiguity) port+=PortProtected
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPublic (ambiguity) port+=PortProtected
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariableProtected
	 *     channel+=Channel (ambiguity) buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) function+=FunctionProtected
	 *     channel+=Channel (ambiguity) port+=PortProtected
	 *     channel+=Channel (ambiguity) signal+=SignalProtected
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPrivate (ambiguity) port+=PortProtected
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPublic (ambiguity) port+=PortProtected
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariableProtected
	 *     function+=Function (ambiguity) buffer+=BufferProtected
	 *     function+=Function (ambiguity) channel+=ChannelProtected
	 *     function+=Function (ambiguity) function+=FunctionProtected
	 *     function+=Function (ambiguity) port+=PortProtected
	 *     function+=Function (ambiguity) signal+=SignalProtected
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPrivate (ambiguity) port+=PortProtected
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPublic (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPublic (ambiguity) port+=PortProtected
	 *     function+=FunctionPublic (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariableProtected
	 *     name=ESIdentifier '{' (ambiguity) buffer+=BufferProtected
	 *     name=ESIdentifier '{' (ambiguity) channel+=ChannelProtected
	 *     name=ESIdentifier '{' (ambiguity) function+=FunctionProtected
	 *     name=ESIdentifier '{' (ambiguity) port+=PortProtected
	 *     name=ESIdentifier '{' (ambiguity) signal+=SignalProtected
	 *     name=ESIdentifier '{' (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) variable+=VariableProtected
	 *     port+=Port (ambiguity) buffer+=BufferProtected
	 *     port+=Port (ambiguity) channel+=ChannelProtected
	 *     port+=Port (ambiguity) function+=FunctionProtected
	 *     port+=Port (ambiguity) port+=PortProtected
	 *     port+=Port (ambiguity) signal+=SignalProtected
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariableProtected
	 *     port+=PortPrivate (ambiguity) buffer+=BufferProtected
	 *     port+=PortPrivate (ambiguity) channel+=ChannelProtected
	 *     port+=PortPrivate (ambiguity) function+=FunctionProtected
	 *     port+=PortPrivate (ambiguity) port+=PortProtected
	 *     port+=PortPrivate (ambiguity) signal+=SignalProtected
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariableProtected
	 *     port+=PortPublic (ambiguity) buffer+=BufferProtected
	 *     port+=PortPublic (ambiguity) channel+=ChannelProtected
	 *     port+=PortPublic (ambiguity) function+=FunctionProtected
	 *     port+=PortPublic (ambiguity) port+=PortProtected
	 *     port+=PortPublic (ambiguity) signal+=SignalProtected
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariableProtected
	 *     signal+=Signal (ambiguity) buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) function+=FunctionProtected
	 *     signal+=Signal (ambiguity) port+=PortProtected
	 *     signal+=Signal (ambiguity) signal+=SignalProtected
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPrivate (ambiguity) port+=PortProtected
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPublic (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPublic (ambiguity) port+=PortProtected
	 *     signal+=SignalPublic (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) port+=PortProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) variable+=VariableProtected
	 *     variable+=Variable (ambiguity) buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) function+=FunctionProtected
	 *     variable+=Variable (ambiguity) port+=PortProtected
	 *     variable+=Variable (ambiguity) signal+=SignalProtected
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePrivate (ambiguity) port+=PortProtected
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePublic (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePublic (ambiguity) port+=PortProtected
	 *     variable+=VariablePublic (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariableProtected
	 */
	protected void emit_MachineBlock_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) channel+=Channel
	 *     buffer+=Buffer (ambiguity) function+=Function
	 *     buffer+=Buffer (ambiguity) port+=Port
	 *     buffer+=Buffer (ambiguity) signal+=Signal
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=Variable
	 *     channel+=Channel (ambiguity) buffer+=Buffer
	 *     channel+=Channel (ambiguity) channel+=Channel
	 *     channel+=Channel (ambiguity) function+=Function
	 *     channel+=Channel (ambiguity) port+=Port
	 *     channel+=Channel (ambiguity) signal+=Signal
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=Variable
	 *     function+=Function (ambiguity) buffer+=Buffer
	 *     function+=Function (ambiguity) channel+=Channel
	 *     function+=Function (ambiguity) function+=Function
	 *     function+=Function (ambiguity) port+=Port
	 *     function+=Function (ambiguity) signal+=Signal
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=Variable
	 *     port+=Port (ambiguity) buffer+=Buffer
	 *     port+=Port (ambiguity) channel+=Channel
	 *     port+=Port (ambiguity) function+=Function
	 *     port+=Port (ambiguity) port+=Port
	 *     port+=Port (ambiguity) signal+=Signal
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=Variable
	 *     signal+=Signal (ambiguity) buffer+=Buffer
	 *     signal+=Signal (ambiguity) channel+=Channel
	 *     signal+=Signal (ambiguity) function+=Function
	 *     signal+=Signal (ambiguity) port+=Port
	 *     signal+=Signal (ambiguity) signal+=Signal
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     variable+=Variable (ambiguity) buffer+=Buffer
	 *     variable+=Variable (ambiguity) channel+=Channel
	 *     variable+=Variable (ambiguity) function+=Function
	 *     variable+=Variable (ambiguity) port+=Port
	 *     variable+=Variable (ambiguity) signal+=Signal
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=Variable
	 */
	protected void emit_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) channel+=Channel
	 *     buffer+=Buffer (ambiguity) function+=Function
	 *     buffer+=Buffer (ambiguity) port+=Port
	 *     buffer+=Buffer (ambiguity) signal+=Signal
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=Variable
	 *     buffer+=BufferPrivate (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPrivate (ambiguity) channel+=Channel
	 *     buffer+=BufferPrivate (ambiguity) function+=Function
	 *     buffer+=BufferPrivate (ambiguity) port+=Port
	 *     buffer+=BufferPrivate (ambiguity) signal+=Signal
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=Variable
	 *     buffer+=BufferProtected (ambiguity) buffer+=Buffer
	 *     buffer+=BufferProtected (ambiguity) channel+=Channel
	 *     buffer+=BufferProtected (ambiguity) function+=Function
	 *     buffer+=BufferProtected (ambiguity) port+=Port
	 *     buffer+=BufferProtected (ambiguity) signal+=Signal
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=Variable
	 *     buffer+=BufferPublic (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPublic (ambiguity) channel+=Channel
	 *     buffer+=BufferPublic (ambiguity) function+=Function
	 *     buffer+=BufferPublic (ambiguity) port+=Port
	 *     buffer+=BufferPublic (ambiguity) signal+=Signal
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=Variable
	 *     channel+=Channel (ambiguity) buffer+=Buffer
	 *     channel+=Channel (ambiguity) channel+=Channel
	 *     channel+=Channel (ambiguity) function+=Function
	 *     channel+=Channel (ambiguity) port+=Port
	 *     channel+=Channel (ambiguity) signal+=Signal
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=Variable
	 *     channel+=ChannelPrivate (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPrivate (ambiguity) channel+=Channel
	 *     channel+=ChannelPrivate (ambiguity) function+=Function
	 *     channel+=ChannelPrivate (ambiguity) port+=Port
	 *     channel+=ChannelPrivate (ambiguity) signal+=Signal
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=Variable
	 *     channel+=ChannelProtected (ambiguity) buffer+=Buffer
	 *     channel+=ChannelProtected (ambiguity) channel+=Channel
	 *     channel+=ChannelProtected (ambiguity) function+=Function
	 *     channel+=ChannelProtected (ambiguity) port+=Port
	 *     channel+=ChannelProtected (ambiguity) signal+=Signal
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=Variable
	 *     channel+=ChannelPublic (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPublic (ambiguity) channel+=Channel
	 *     channel+=ChannelPublic (ambiguity) function+=Function
	 *     channel+=ChannelPublic (ambiguity) port+=Port
	 *     channel+=ChannelPublic (ambiguity) signal+=Signal
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=Variable
	 *     function+=Function (ambiguity) buffer+=Buffer
	 *     function+=Function (ambiguity) channel+=Channel
	 *     function+=Function (ambiguity) function+=Function
	 *     function+=Function (ambiguity) port+=Port
	 *     function+=Function (ambiguity) signal+=Signal
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=Variable
	 *     function+=FunctionPrivate (ambiguity) buffer+=Buffer
	 *     function+=FunctionPrivate (ambiguity) channel+=Channel
	 *     function+=FunctionPrivate (ambiguity) function+=Function
	 *     function+=FunctionPrivate (ambiguity) port+=Port
	 *     function+=FunctionPrivate (ambiguity) signal+=Signal
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=Variable
	 *     function+=FunctionProtected (ambiguity) buffer+=Buffer
	 *     function+=FunctionProtected (ambiguity) channel+=Channel
	 *     function+=FunctionProtected (ambiguity) function+=Function
	 *     function+=FunctionProtected (ambiguity) port+=Port
	 *     function+=FunctionProtected (ambiguity) signal+=Signal
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=Variable
	 *     function+=FunctionPublic (ambiguity) buffer+=Buffer
	 *     function+=FunctionPublic (ambiguity) channel+=Channel
	 *     function+=FunctionPublic (ambiguity) function+=Function
	 *     function+=FunctionPublic (ambiguity) port+=Port
	 *     function+=FunctionPublic (ambiguity) signal+=Signal
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=Variable
	 *     name=ESIdentifier '{' (ambiguity) buffer+=Buffer
	 *     name=ESIdentifier '{' (ambiguity) channel+=Channel
	 *     name=ESIdentifier '{' (ambiguity) function+=Function
	 *     name=ESIdentifier '{' (ambiguity) port+=Port
	 *     name=ESIdentifier '{' (ambiguity) signal+=Signal
	 *     name=ESIdentifier '{' (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) variable+=Variable
	 *     port+=Port (ambiguity) buffer+=Buffer
	 *     port+=Port (ambiguity) channel+=Channel
	 *     port+=Port (ambiguity) function+=Function
	 *     port+=Port (ambiguity) port+=Port
	 *     port+=Port (ambiguity) signal+=Signal
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=Variable
	 *     port+=PortPrivate (ambiguity) buffer+=Buffer
	 *     port+=PortPrivate (ambiguity) channel+=Channel
	 *     port+=PortPrivate (ambiguity) function+=Function
	 *     port+=PortPrivate (ambiguity) port+=Port
	 *     port+=PortPrivate (ambiguity) signal+=Signal
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=Variable
	 *     port+=PortProtected (ambiguity) buffer+=Buffer
	 *     port+=PortProtected (ambiguity) channel+=Channel
	 *     port+=PortProtected (ambiguity) function+=Function
	 *     port+=PortProtected (ambiguity) port+=Port
	 *     port+=PortProtected (ambiguity) signal+=Signal
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=Variable
	 *     port+=PortPublic (ambiguity) buffer+=Buffer
	 *     port+=PortPublic (ambiguity) channel+=Channel
	 *     port+=PortPublic (ambiguity) function+=Function
	 *     port+=PortPublic (ambiguity) port+=Port
	 *     port+=PortPublic (ambiguity) signal+=Signal
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=Variable
	 *     signal+=Signal (ambiguity) buffer+=Buffer
	 *     signal+=Signal (ambiguity) channel+=Channel
	 *     signal+=Signal (ambiguity) function+=Function
	 *     signal+=Signal (ambiguity) port+=Port
	 *     signal+=Signal (ambiguity) signal+=Signal
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=Variable
	 *     signal+=SignalPrivate (ambiguity) buffer+=Buffer
	 *     signal+=SignalPrivate (ambiguity) channel+=Channel
	 *     signal+=SignalPrivate (ambiguity) function+=Function
	 *     signal+=SignalPrivate (ambiguity) port+=Port
	 *     signal+=SignalPrivate (ambiguity) signal+=Signal
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=Variable
	 *     signal+=SignalProtected (ambiguity) buffer+=Buffer
	 *     signal+=SignalProtected (ambiguity) channel+=Channel
	 *     signal+=SignalProtected (ambiguity) function+=Function
	 *     signal+=SignalProtected (ambiguity) port+=Port
	 *     signal+=SignalProtected (ambiguity) signal+=Signal
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=Variable
	 *     signal+=SignalPublic (ambiguity) buffer+=Buffer
	 *     signal+=SignalPublic (ambiguity) channel+=Channel
	 *     signal+=SignalPublic (ambiguity) function+=Function
	 *     signal+=SignalPublic (ambiguity) port+=Port
	 *     signal+=SignalPublic (ambiguity) signal+=Signal
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) function+=Function
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) port+=Port
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) variable+=Variable
	 *     variable+=Variable (ambiguity) buffer+=Buffer
	 *     variable+=Variable (ambiguity) channel+=Channel
	 *     variable+=Variable (ambiguity) function+=Function
	 *     variable+=Variable (ambiguity) port+=Port
	 *     variable+=Variable (ambiguity) signal+=Signal
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=Variable
	 *     variable+=VariablePrivate (ambiguity) buffer+=Buffer
	 *     variable+=VariablePrivate (ambiguity) channel+=Channel
	 *     variable+=VariablePrivate (ambiguity) function+=Function
	 *     variable+=VariablePrivate (ambiguity) port+=Port
	 *     variable+=VariablePrivate (ambiguity) signal+=Signal
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=Variable
	 *     variable+=VariableProtected (ambiguity) buffer+=Buffer
	 *     variable+=VariableProtected (ambiguity) channel+=Channel
	 *     variable+=VariableProtected (ambiguity) function+=Function
	 *     variable+=VariableProtected (ambiguity) port+=Port
	 *     variable+=VariableProtected (ambiguity) signal+=Signal
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=Variable
	 *     variable+=VariablePublic (ambiguity) buffer+=Buffer
	 *     variable+=VariablePublic (ambiguity) channel+=Channel
	 *     variable+=VariablePublic (ambiguity) function+=Function
	 *     variable+=VariablePublic (ambiguity) port+=Port
	 *     variable+=VariablePublic (ambiguity) signal+=Signal
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=Variable
	 */
	protected void emit_MachineBlock_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPrivate (ambiguity) port+=PortPrivate
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePrivate
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPrivate (ambiguity) function+=FunctionPrivate
	 *     port+=PortPrivate (ambiguity) port+=PortPrivate
	 *     port+=PortPrivate (ambiguity) signal+=SignalPrivate
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPrivate (ambiguity) port+=PortPrivate
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePrivate (ambiguity) port+=PortPrivate
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferProtected (ambiguity) port+=PortPrivate
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPublic (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) port+=PortPrivate
	 *     channel+=Channel (ambiguity) signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelProtected (ambiguity) port+=PortPrivate
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPublic (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePrivate
	 *     function+=Function (ambiguity) buffer+=BufferPrivate
	 *     function+=Function (ambiguity) channel+=ChannelPrivate
	 *     function+=Function (ambiguity) function+=FunctionPrivate
	 *     function+=Function (ambiguity) port+=PortPrivate
	 *     function+=Function (ambiguity) signal+=SignalPrivate
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionProtected (ambiguity) port+=PortPrivate
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPublic (ambiguity) port+=PortPrivate
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePrivate
	 *     name=ESIdentifier '{' (ambiguity) buffer+=BufferPrivate
	 *     name=ESIdentifier '{' (ambiguity) channel+=ChannelPrivate
	 *     name=ESIdentifier '{' (ambiguity) function+=FunctionPrivate
	 *     name=ESIdentifier '{' (ambiguity) port+=PortPrivate
	 *     name=ESIdentifier '{' (ambiguity) signal+=SignalPrivate
	 *     name=ESIdentifier '{' (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) variable+=VariablePrivate
	 *     port+=Port (ambiguity) buffer+=BufferPrivate
	 *     port+=Port (ambiguity) channel+=ChannelPrivate
	 *     port+=Port (ambiguity) function+=FunctionPrivate
	 *     port+=Port (ambiguity) port+=PortPrivate
	 *     port+=Port (ambiguity) signal+=SignalPrivate
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePrivate
	 *     port+=PortProtected (ambiguity) buffer+=BufferPrivate
	 *     port+=PortProtected (ambiguity) channel+=ChannelPrivate
	 *     port+=PortProtected (ambiguity) function+=FunctionPrivate
	 *     port+=PortProtected (ambiguity) port+=PortPrivate
	 *     port+=PortProtected (ambiguity) signal+=SignalPrivate
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePrivate
	 *     port+=PortPublic (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPublic (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPublic (ambiguity) function+=FunctionPrivate
	 *     port+=PortPublic (ambiguity) port+=PortPrivate
	 *     port+=PortPublic (ambiguity) signal+=SignalPrivate
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) port+=PortPrivate
	 *     signal+=Signal (ambiguity) signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalProtected (ambiguity) port+=PortPrivate
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPublic (ambiguity) port+=PortPrivate
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) port+=PortPrivate
	 *     variable+=Variable (ambiguity) signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePrivate
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPrivate
	 *     variable+=VariableProtected (ambiguity) port+=PortPrivate
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPrivate
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePublic (ambiguity) port+=PortPrivate
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_MachineBlock_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@local:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) (rule start)
	 *     (rule start) (ambiguity) execution=ModelOfExecution
	 *     (rule start) (ambiguity) interaction=ModelOfInteraction
	 */
	protected void emit_MoeBehavior_LocalKeyword_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ':' | '=>' | '<-'
	 *
	 * This ambiguous syntax occurs at:
	 *     name=XLIA_ID (ambiguity) expression=Expression
	 */
	protected void emit_NamedExpression_ColonKeyword_1_0_or_EqualsSignGreaterThanSignKeyword_1_1_or_LessThanSignHyphenMinusKeyword_1_2(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '<==' | 'via'
	 *
	 * This ambiguous syntax occurs at:
	 *     leftValue+=Expression ')' (ambiguity) route=[Channel|ESUfid]
	 *     port=ObsComElement (ambiguity) route=[Channel|ESUfid]
	 *     route=[Channel|ESUfid] (ambiguity) route=[Channel|ESUfid]
	 *     target=ValuePureNamedMachineExpression (ambiguity) route=[Channel|ESUfid]
	 */
	protected void emit_ObsInputComStatement_LessThanSignEqualsSignEqualsSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '==>' | 'via'
	 *
	 * This ambiguous syntax occurs at:
	 *     port=ObsComElement (ambiguity) route=[Channel|ESUfid]
	 *     rightValue+=Expression ')' (ambiguity) route=[Channel|ESUfid]
	 *     route=[Channel|ESUfid] (ambiguity) route=[Channel|ESUfid]
	 *     target=ValuePureNamedMachineExpression (ambiguity) route=[Channel|ESUfid]
	 */
	protected void emit_ObsOutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@observe' | '@obs'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '(' 'ctx:' context=ValuePureNamedMachineExpression
	 *     (rule start) (ambiguity) '{' statement=ObservableStatement
	 */
	protected void emit_ObserverStatement_ObsKeyword_1_1_or_ObserveKeyword_1_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@write' | '@on_write'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '(' parameterSet=VariableRoutineParameterSet
	 *     (rule start) (ambiguity) bodyBlock=BlockStatement
	 */
	protected void emit_OnWriteRoutine_On_writeKeyword_1_1_or_WriteKeyword_1_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'moc:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) ('state' | 'pseudostate') '<' (ambiguity) kind=PseudostateKind
	 */
	protected void emit_OtherPseudostate_MocKeyword_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'state' | 'pseudostate'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '<' 'moc:'? kind=PseudostateKind
	 */
	protected void emit_OtherPseudostate_PseudostateKeyword_1_1_or_StateKeyword_1_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) (rule end)
	 */
	protected void emit_OtherPseudostate_SemicolonKeyword_8_1_or___LeftCurlyBracketKeyword_8_0_0_RightCurlyBracketKeyword_8_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '==>' | 'via'
	 *
	 * This ambiguous syntax occurs at:
	 *     port=LitteralComElement (ambiguity) route=[Channel|ESUfid]
	 *     rightValue+=Expression ')' (ambiguity) route=[Channel|ESUfid]
	 *     route=[Channel|ESUfid] (ambiguity) route=[Channel|ESUfid]
	 *     target=LiteralPureReferenceExpression (ambiguity) route=[Channel|ESUfid]
	 */
	protected void emit_OutputComStatement_EqualsSignEqualsSignGreaterThanSignKeyword_3_1_0_0_or_ViaKeyword_3_1_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) ';' (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) ';' (rule end)
	 */
	protected void emit_PortImpl___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) ';' (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) ';' (rule end)
	 */
	protected void emit_Port___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'size:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name='double' '<' (ambiguity) size=EInt
	 *     name='float' '<' (ambiguity) size=EInt
	 *     name='pos_float' '<' (ambiguity) size=EInt
	 *     name='udouble' '<' (ambiguity) size=EInt
	 *     name='ufloat' '<' (ambiguity) size=EInt
	 */
	protected void emit_PrimitiveFloatType_SizeKeyword_3_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'size:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name='int' '<' (ambiguity) size=EInt
	 *     name='integer' '<' (ambiguity) size=EInt
	 *     name='pos_integer' '<' (ambiguity) size=EInt
	 *     name='uint' '<' (ambiguity) size=EInt
	 *     name='uinteger' '<' (ambiguity) size=EInt
	 */
	protected void emit_PrimitiveIntegerType_SizeKeyword_3_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'size:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name='pos_rational' '<' (ambiguity) size=EInt
	 *     name='rat' '<' (ambiguity) size=EInt
	 *     name='rational' '<' (ambiguity) size=EInt
	 *     name='urat' '<' (ambiguity) size=EInt
	 *     name='urational' '<' (ambiguity) size=EInt
	 */
	protected void emit_PrimitiveRationalType_SizeKeyword_3_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'size:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name='pos_real' '<' (ambiguity) size=EInt
	 *     name='real' '<' (ambiguity) size=EInt
	 *     name='ureal' '<' (ambiguity) size=EInt
	 */
	protected void emit_PrimitiveRealType_SizeKeyword_3_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'size:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name='string' '<' (ambiguity) size=EInt
	 */
	protected void emit_PrimitiveStringType_SizeKeyword_2_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@moe:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '@run' runRoutine=moeRoutine
	 *     (rule start) (ambiguity) '@schedule' scheduleRoutine=moeRoutine
	 *     (rule start) (ambiguity) (rule start)
	 */
	protected void emit_ProcedureExecution_MoeKeyword_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@routine:' | '@macro:'
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         (ambiguity) 
	 *         routine+=Routine
	 *     )
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     procedure+=Procedure (ambiguity) routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 */
	protected void emit_Procedure_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@parameter:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         buffer+=BufferPrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         channel+=ChannelPrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         signal+=SignalPrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         port+=PortProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         channel+=ChannelPublic
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         function+=FunctionPublic
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         variable+=VariablePublic
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         region+=StatemachineNamedRegion
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         buffer+=BufferPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         channel+=ChannelPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         port+=PortPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         signal+=SignalPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         port+=PortProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         buffer+=BufferPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         channel+=ChannelPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         function+=FunctionPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         port+=PortPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         signal+=SignalPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         variable+=VariablePublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         execution=ProcedureExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         region+=StatemachineNamedRegion
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         region+=StatemachineRegion
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         region+=StatemachineRegionLite
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         buffer+=Buffer
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         channel+=Channel
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         function+=Function
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         signal+=Signal
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         variable+=Variable
	 *     )
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     name=ESIdentifier ('(' ')')? '{' (ambiguity) (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=FormalParameter ')' '{' (ambiguity) (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     parameter+=FormalParameter ')' '{' (ambiguity) (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     parameter+=FormalParameter ')' '{' (ambiguity) (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     parameter+=FormalParameter ')' '{' (ambiguity) (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=FormalParameter '{' (ambiguity) (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     parameter+=FormalParameter '{' (ambiguity) (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     parameter+=FormalParameter '{' (ambiguity) (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     parameter+=FormalParameter '{' (ambiguity) (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     parameter+=FunctionalParameter ')' '{' (ambiguity) (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' (ambiguity) (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' (ambiguity) (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' (ambiguity) (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' (ambiguity) (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 */
	protected void emit_Procedure_ParameterKeyword_7_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@procedure:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     procedure+=Procedure (ambiguity) procedure+=Procedure
	 */
	protected void emit_Procedure_ProcedureKeyword_10_0_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         parameter+=FormalParameter 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         buffer+=BufferPrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         channel+=ChannelPrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         signal+=SignalPrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         port+=PortProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         channel+=ChannelPublic
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         function+=FunctionPublic
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         variable+=VariablePublic
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         buffer+=BufferPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         channel+=ChannelPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         port+=PortPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         signal+=SignalPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         port+=PortProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         buffer+=BufferPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         channel+=ChannelPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         function+=FunctionPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         port+=PortPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         signal+=SignalPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         variable+=VariablePublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         execution=ProcedureExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         region+=StatemachineNamedRegion
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         region+=StatemachineRegion
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         region+=StatemachineRegionLite
	 *     )
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '}' (rule end)
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* execution=ProcedureExecution
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 */
	protected void emit_Procedure_PropertyKeyword_9_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@public:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         parameter+=FormalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         function+=Function
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         parameter+=FunctionalParameter 
	 *         ')' 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         variable+=Variable
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         buffer+=Buffer
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         channel+=Channel
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         function+=Function
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         port+=Port
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         signal+=Signal
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         ('(' ')')? 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         variable+=Variable
	 *     )
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 */
	protected void emit_Procedure_PublicKeyword_9_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@input:' | '@inout:' | '@output:' | '@return:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 */
	protected void emit_Procedure___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         channel+=ChannelPrivate
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         function+=FunctionPublic
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         variable+=VariablePublic
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         buffer+=BufferPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         channel+=ChannelPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         port+=PortPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         signal+=SignalPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         port+=PortProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         buffer+=BufferPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         channel+=ChannelPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         function+=FunctionPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         port+=PortPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         signal+=SignalPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         variable+=VariablePublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         execution=ProcedureExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         region+=StatemachineNamedRegion
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         region+=StatemachineRegion
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         region+=StatemachineRegionLite
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         buffer+=Buffer
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         channel+=Channel
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         function+=Function
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         port+=Port
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         signal+=Signal
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         (ambiguity) 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         variable+=Variable
	 *     )
	 *     name=ESIdentifier (ambiguity) '-->' '(' parameter+=FormalParameter
	 *     name=ESIdentifier (ambiguity) '-->' parameter+=FormalParameter
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:' 'inout' '{' parameter+=ParameterInout
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:' 'inout' parameter+=ParameterInout
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:' 'input' '{' parameter+=ParameterInput
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:' 'input' parameter+=ParameterInput
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:' 'output' '{' parameter+=ParameterOutput
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:' 'output' parameter+=ParameterOutput
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:' 'return' '{' parameter+=ParameterReturn
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:' 'return' parameter+=ParameterReturn
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* execution=ProcedureExecution
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     name=ESIdentifier (ambiguity) '{' '@parameter:'? (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 *     name=ESIdentifier (ambiguity) '{' buffer+=Buffer
	 *     name=ESIdentifier (ambiguity) '{' channel+=Channel
	 *     name=ESIdentifier (ambiguity) '{' function+=Function
	 *     name=ESIdentifier (ambiguity) '{' port+=Port
	 *     name=ESIdentifier (ambiguity) '{' signal+=Signal
	 *     name=ESIdentifier (ambiguity) '{' typedef+=TypeDefinition
	 *     name=ESIdentifier (ambiguity) '{' variable+=Variable
	 *     unrestrictedName=UnrestrictedName (ambiguity) '-->' '(' parameter+=FormalParameter
	 *     unrestrictedName=UnrestrictedName (ambiguity) '-->' parameter+=FormalParameter
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:' 'inout' '{' parameter+=ParameterInout
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:' 'inout' parameter+=ParameterInout
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:' 'input' '{' parameter+=ParameterInput
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:' 'input' parameter+=ParameterInput
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:' 'output' '{' parameter+=ParameterOutput
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:' 'output' parameter+=ParameterOutput
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:' 'return' '{' parameter+=ParameterReturn
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:' 'return' parameter+=ParameterReturn
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '}' (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:'? (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:'? (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:'? (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' '@parameter:'? (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' channel+=Channel
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' function+=Function
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' port+=Port
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' signal+=Signal
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName (ambiguity) '{' variable+=Variable
	 */
	protected void emit_Procedure___LeftParenthesisKeyword_5_0_0_RightParenthesisKeyword_5_0_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('<' 'moc:'? ('and' | 'or') '>')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'procedure' (ambiguity) name=ESIdentifier
	 *     visibility=VisibilityKind 'procedure' (ambiguity) name=ESIdentifier
	 */
	protected void emit_Procedure___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@routine:' | '@macro:')?
	 *
	 * This ambiguous syntax occurs at:
	 *     routine+=Routine (ambiguity) routine+=Routine
	 */
	protected void emit_Procedure___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@property:' | '@public:' | '@protected:' | '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) '}' (rule end)
	 *     buffer+=Buffer (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer (ambiguity) execution=ProcedureExecution
	 *     buffer+=Buffer (ambiguity) procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=Buffer (ambiguity) region+=StatemachineRegion
	 *     buffer+=Buffer (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=Buffer (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) '}' (rule end)
	 *     buffer+=BufferPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) execution=ProcedureExecution
	 *     buffer+=BufferPrivate (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=BufferPrivate (ambiguity) region+=StatemachineRegion
	 *     buffer+=BufferPrivate (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=BufferPrivate (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) '}' (rule end)
	 *     buffer+=BufferProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) execution=ProcedureExecution
	 *     buffer+=BufferProtected (ambiguity) procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=BufferProtected (ambiguity) region+=StatemachineRegion
	 *     buffer+=BufferProtected (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=BufferProtected (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) '}' (rule end)
	 *     buffer+=BufferPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) execution=ProcedureExecution
	 *     buffer+=BufferPublic (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=BufferPublic (ambiguity) region+=StatemachineRegion
	 *     buffer+=BufferPublic (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=BufferPublic (ambiguity) routine+=Routine
	 *     channel+=Channel (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=Channel (ambiguity) '}' (rule end)
	 *     channel+=Channel (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel (ambiguity) execution=ProcedureExecution
	 *     channel+=Channel (ambiguity) procedure+=Procedure
	 *     channel+=Channel (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=Channel (ambiguity) region+=StatemachineRegion
	 *     channel+=Channel (ambiguity) region+=StatemachineRegionLite
	 *     channel+=Channel (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) '}' (rule end)
	 *     channel+=ChannelPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) execution=ProcedureExecution
	 *     channel+=ChannelPrivate (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=ChannelPrivate (ambiguity) region+=StatemachineRegion
	 *     channel+=ChannelPrivate (ambiguity) region+=StatemachineRegionLite
	 *     channel+=ChannelPrivate (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) '}' (rule end)
	 *     channel+=ChannelProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) execution=ProcedureExecution
	 *     channel+=ChannelProtected (ambiguity) procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=ChannelProtected (ambiguity) region+=StatemachineRegion
	 *     channel+=ChannelProtected (ambiguity) region+=StatemachineRegionLite
	 *     channel+=ChannelProtected (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) '}' (rule end)
	 *     channel+=ChannelPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) execution=ProcedureExecution
	 *     channel+=ChannelPublic (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=ChannelPublic (ambiguity) region+=StatemachineRegion
	 *     channel+=ChannelPublic (ambiguity) region+=StatemachineRegionLite
	 *     channel+=ChannelPublic (ambiguity) routine+=Routine
	 *     function+=Function (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=Function (ambiguity) '}' (rule end)
	 *     function+=Function (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function (ambiguity) execution=ProcedureExecution
	 *     function+=Function (ambiguity) procedure+=Procedure
	 *     function+=Function (ambiguity) region+=StatemachineNamedRegion
	 *     function+=Function (ambiguity) region+=StatemachineRegion
	 *     function+=Function (ambiguity) region+=StatemachineRegionLite
	 *     function+=Function (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) '}' (rule end)
	 *     function+=FunctionPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) execution=ProcedureExecution
	 *     function+=FunctionPrivate (ambiguity) procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     function+=FunctionPrivate (ambiguity) region+=StatemachineRegion
	 *     function+=FunctionPrivate (ambiguity) region+=StatemachineRegionLite
	 *     function+=FunctionPrivate (ambiguity) routine+=Routine
	 *     function+=FunctionProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) '}' (rule end)
	 *     function+=FunctionProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionProtected (ambiguity) execution=ProcedureExecution
	 *     function+=FunctionProtected (ambiguity) procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) region+=StatemachineNamedRegion
	 *     function+=FunctionProtected (ambiguity) region+=StatemachineRegion
	 *     function+=FunctionProtected (ambiguity) region+=StatemachineRegionLite
	 *     function+=FunctionProtected (ambiguity) routine+=Routine
	 *     function+=FunctionPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) '}' (rule end)
	 *     function+=FunctionPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPublic (ambiguity) execution=ProcedureExecution
	 *     function+=FunctionPublic (ambiguity) procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) region+=StatemachineNamedRegion
	 *     function+=FunctionPublic (ambiguity) region+=StatemachineRegion
	 *     function+=FunctionPublic (ambiguity) region+=StatemachineRegionLite
	 *     function+=FunctionPublic (ambiguity) routine+=Routine
	 *     port+=Port (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=Port (ambiguity) '}' (rule end)
	 *     port+=Port (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port (ambiguity) execution=ProcedureExecution
	 *     port+=Port (ambiguity) procedure+=Procedure
	 *     port+=Port (ambiguity) region+=StatemachineNamedRegion
	 *     port+=Port (ambiguity) region+=StatemachineRegion
	 *     port+=Port (ambiguity) region+=StatemachineRegionLite
	 *     port+=Port (ambiguity) routine+=Routine
	 *     port+=PortPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) '}' (rule end)
	 *     port+=PortPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPrivate (ambiguity) execution=ProcedureExecution
	 *     port+=PortPrivate (ambiguity) procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     port+=PortPrivate (ambiguity) region+=StatemachineRegion
	 *     port+=PortPrivate (ambiguity) region+=StatemachineRegionLite
	 *     port+=PortPrivate (ambiguity) routine+=Routine
	 *     port+=PortProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortProtected (ambiguity) '}' (rule end)
	 *     port+=PortProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortProtected (ambiguity) execution=ProcedureExecution
	 *     port+=PortProtected (ambiguity) procedure+=Procedure
	 *     port+=PortProtected (ambiguity) region+=StatemachineNamedRegion
	 *     port+=PortProtected (ambiguity) region+=StatemachineRegion
	 *     port+=PortProtected (ambiguity) region+=StatemachineRegionLite
	 *     port+=PortProtected (ambiguity) routine+=Routine
	 *     port+=PortPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPublic (ambiguity) '}' (rule end)
	 *     port+=PortPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPublic (ambiguity) execution=ProcedureExecution
	 *     port+=PortPublic (ambiguity) procedure+=Procedure
	 *     port+=PortPublic (ambiguity) region+=StatemachineNamedRegion
	 *     port+=PortPublic (ambiguity) region+=StatemachineRegion
	 *     port+=PortPublic (ambiguity) region+=StatemachineRegionLite
	 *     port+=PortPublic (ambiguity) routine+=Routine
	 *     signal+=Signal (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=Signal (ambiguity) '}' (rule end)
	 *     signal+=Signal (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal (ambiguity) execution=ProcedureExecution
	 *     signal+=Signal (ambiguity) procedure+=Procedure
	 *     signal+=Signal (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=Signal (ambiguity) region+=StatemachineRegion
	 *     signal+=Signal (ambiguity) region+=StatemachineRegionLite
	 *     signal+=Signal (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) '}' (rule end)
	 *     signal+=SignalPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) execution=ProcedureExecution
	 *     signal+=SignalPrivate (ambiguity) procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=SignalPrivate (ambiguity) region+=StatemachineRegion
	 *     signal+=SignalPrivate (ambiguity) region+=StatemachineRegionLite
	 *     signal+=SignalPrivate (ambiguity) routine+=Routine
	 *     signal+=SignalProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) '}' (rule end)
	 *     signal+=SignalProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalProtected (ambiguity) execution=ProcedureExecution
	 *     signal+=SignalProtected (ambiguity) procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=SignalProtected (ambiguity) region+=StatemachineRegion
	 *     signal+=SignalProtected (ambiguity) region+=StatemachineRegionLite
	 *     signal+=SignalProtected (ambiguity) routine+=Routine
	 *     signal+=SignalPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) '}' (rule end)
	 *     signal+=SignalPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPublic (ambiguity) execution=ProcedureExecution
	 *     signal+=SignalPublic (ambiguity) procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=SignalPublic (ambiguity) region+=StatemachineRegion
	 *     signal+=SignalPublic (ambiguity) region+=StatemachineRegionLite
	 *     signal+=SignalPublic (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) '}' (rule end)
	 *     typedef+=TypeDefinition (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) execution=ProcedureExecution
	 *     typedef+=TypeDefinition (ambiguity) procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition (ambiguity) region+=StatemachineRegion
	 *     typedef+=TypeDefinition (ambiguity) region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition (ambiguity) routine+=Routine
	 *     variable+=Variable (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=Variable (ambiguity) '}' (rule end)
	 *     variable+=Variable (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable (ambiguity) execution=ProcedureExecution
	 *     variable+=Variable (ambiguity) procedure+=Procedure
	 *     variable+=Variable (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=Variable (ambiguity) region+=StatemachineRegion
	 *     variable+=Variable (ambiguity) region+=StatemachineRegionLite
	 *     variable+=Variable (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) '}' (rule end)
	 *     variable+=VariablePrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) execution=ProcedureExecution
	 *     variable+=VariablePrivate (ambiguity) procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=VariablePrivate (ambiguity) region+=StatemachineRegion
	 *     variable+=VariablePrivate (ambiguity) region+=StatemachineRegionLite
	 *     variable+=VariablePrivate (ambiguity) routine+=Routine
	 *     variable+=VariableProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) '}' (rule end)
	 *     variable+=VariableProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariableProtected (ambiguity) execution=ProcedureExecution
	 *     variable+=VariableProtected (ambiguity) procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=VariableProtected (ambiguity) region+=StatemachineRegion
	 *     variable+=VariableProtected (ambiguity) region+=StatemachineRegionLite
	 *     variable+=VariableProtected (ambiguity) routine+=Routine
	 *     variable+=VariablePublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) '}' (rule end)
	 *     variable+=VariablePublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePublic (ambiguity) execution=ProcedureExecution
	 *     variable+=VariablePublic (ambiguity) procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=VariablePublic (ambiguity) region+=StatemachineRegion
	 *     variable+=VariablePublic (ambiguity) region+=StatemachineRegionLite
	 *     variable+=VariablePublic (ambiguity) routine+=Routine
	 */
	protected void emit_Procedure___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'input' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_Procedure___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'inout' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_Procedure___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'output' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_Procedure___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'return' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_Procedure___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@output:')* '@return:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@output:')* '@return:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterReturn
	 *     channel+=Channel (ambiguity) parameter+=ParameterReturn
	 *     function+=Function (ambiguity) parameter+=ParameterReturn
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) parameter+=ParameterReturn
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) parameter+=ParameterReturn
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) parameter+=ParameterReturn
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 *     port+=Port (ambiguity) parameter+=ParameterReturn
	 *     signal+=Signal (ambiguity) parameter+=ParameterReturn
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterReturn
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) parameter+=ParameterReturn
	 *     variable+=Variable (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@return:')* '@output:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@return:')* '@output:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterOutput
	 *     channel+=Channel (ambiguity) parameter+=ParameterOutput
	 *     function+=Function (ambiguity) parameter+=ParameterOutput
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) parameter+=ParameterOutput
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) parameter+=ParameterOutput
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) parameter+=ParameterOutput
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterOutput
	 *     port+=Port (ambiguity) parameter+=ParameterOutput
	 *     signal+=Signal (ambiguity) parameter+=ParameterOutput
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterOutput
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) parameter+=ParameterOutput
	 *     variable+=Variable (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_Procedure_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@inout:' | '@output:' | '@return:')* '@input:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@inout:' | '@output:' | '@return:')* '@input:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterInput
	 *     channel+=Channel (ambiguity) parameter+=ParameterInput
	 *     function+=Function (ambiguity) parameter+=ParameterInput
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) parameter+=ParameterInput
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) parameter+=ParameterInput
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) parameter+=ParameterInput
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterInput
	 *     port+=Port (ambiguity) parameter+=ParameterInput
	 *     signal+=Signal (ambiguity) parameter+=ParameterInput
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterInput
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) parameter+=ParameterInput
	 *     variable+=Variable (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_Procedure_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@output:' | '@return:')* '@inout:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@output:' | '@return:')* '@inout:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterInout
	 *     channel+=Channel (ambiguity) parameter+=ParameterInout
	 *     function+=Function (ambiguity) parameter+=ParameterInout
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? (ambiguity) parameter+=ParameterInout
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? (ambiguity) parameter+=ParameterInout
	 *     parameter+=FormalParameter '{' '@parameter:'? (ambiguity) parameter+=ParameterInout
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterInout
	 *     port+=Port (ambiguity) parameter+=ParameterInout
	 *     signal+=Signal (ambiguity) parameter+=ParameterInout
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterInout
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? (ambiguity) parameter+=ParameterInout
	 *     variable+=Variable (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_Procedure_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPublic (ambiguity) port+=PortPublic
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPublic (ambiguity) port+=PortPublic
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPublic (ambiguity) port+=PortPublic
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePublic
	 *     port+=PortPublic (ambiguity) buffer+=BufferPublic
	 *     port+=PortPublic (ambiguity) channel+=ChannelPublic
	 *     port+=PortPublic (ambiguity) function+=FunctionPublic
	 *     port+=PortPublic (ambiguity) port+=PortPublic
	 *     port+=PortPublic (ambiguity) signal+=SignalPublic
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPublic (ambiguity) port+=PortPublic
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePublic (ambiguity) port+=PortPublic
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePublic
	 */
	protected void emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) port+=PortPublic
	 *     buffer+=Buffer (ambiguity) signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPublic
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferProtected (ambiguity) port+=PortPublic
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePublic
	 *     channel+=Channel (ambiguity) buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) function+=FunctionPublic
	 *     channel+=Channel (ambiguity) port+=PortPublic
	 *     channel+=Channel (ambiguity) signal+=SignalPublic
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPublic
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelProtected (ambiguity) port+=PortPublic
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePublic
	 *     function+=Function (ambiguity) buffer+=BufferPublic
	 *     function+=Function (ambiguity) channel+=ChannelPublic
	 *     function+=Function (ambiguity) function+=FunctionPublic
	 *     function+=Function (ambiguity) port+=PortPublic
	 *     function+=Function (ambiguity) signal+=SignalPublic
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPrivate (ambiguity) port+=PortPublic
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePublic
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPublic
	 *     function+=FunctionProtected (ambiguity) port+=PortPublic
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPublic
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePublic
	 *     port+=Port (ambiguity) buffer+=BufferPublic
	 *     port+=Port (ambiguity) channel+=ChannelPublic
	 *     port+=Port (ambiguity) function+=FunctionPublic
	 *     port+=Port (ambiguity) port+=PortPublic
	 *     port+=Port (ambiguity) signal+=SignalPublic
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePublic
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPublic
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPublic
	 *     port+=PortPrivate (ambiguity) function+=FunctionPublic
	 *     port+=PortPrivate (ambiguity) port+=PortPublic
	 *     port+=PortPrivate (ambiguity) signal+=SignalPublic
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePublic
	 *     port+=PortProtected (ambiguity) buffer+=BufferPublic
	 *     port+=PortProtected (ambiguity) channel+=ChannelPublic
	 *     port+=PortProtected (ambiguity) function+=FunctionPublic
	 *     port+=PortProtected (ambiguity) port+=PortPublic
	 *     port+=PortProtected (ambiguity) signal+=SignalPublic
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePublic
	 *     signal+=Signal (ambiguity) buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) function+=FunctionPublic
	 *     signal+=Signal (ambiguity) port+=PortPublic
	 *     signal+=Signal (ambiguity) signal+=SignalPublic
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPrivate (ambiguity) port+=PortPublic
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePublic
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPublic
	 *     signal+=SignalProtected (ambiguity) port+=PortPublic
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPublic
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     variable+=Variable (ambiguity) buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) function+=FunctionPublic
	 *     variable+=Variable (ambiguity) port+=PortPublic
	 *     variable+=Variable (ambiguity) signal+=SignalPublic
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePrivate (ambiguity) port+=PortPublic
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePublic
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPublic
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPublic
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPublic
	 *     variable+=VariableProtected (ambiguity) port+=PortPublic
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPublic
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePublic
	 */
	protected void emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')? '@public:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 */
	protected void emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferProtected (ambiguity) port+=PortProtected
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelProtected (ambiguity) port+=PortProtected
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariableProtected
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionProtected (ambiguity) function+=FunctionProtected
	 *     function+=FunctionProtected (ambiguity) port+=PortProtected
	 *     function+=FunctionProtected (ambiguity) signal+=SignalProtected
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariableProtected
	 *     port+=PortProtected (ambiguity) buffer+=BufferProtected
	 *     port+=PortProtected (ambiguity) channel+=ChannelProtected
	 *     port+=PortProtected (ambiguity) function+=FunctionProtected
	 *     port+=PortProtected (ambiguity) port+=PortProtected
	 *     port+=PortProtected (ambiguity) signal+=SignalProtected
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariableProtected
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalProtected (ambiguity) function+=FunctionProtected
	 *     signal+=SignalProtected (ambiguity) port+=PortProtected
	 *     signal+=SignalProtected (ambiguity) signal+=SignalProtected
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferProtected
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelProtected
	 *     variable+=VariableProtected (ambiguity) function+=FunctionProtected
	 *     variable+=VariableProtected (ambiguity) port+=PortProtected
	 *     variable+=VariableProtected (ambiguity) signal+=SignalProtected
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariableProtected
	 */
	protected void emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) port+=PortProtected
	 *     buffer+=Buffer (ambiguity) signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPrivate (ambiguity) port+=PortProtected
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPublic (ambiguity) port+=PortProtected
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariableProtected
	 *     channel+=Channel (ambiguity) buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) function+=FunctionProtected
	 *     channel+=Channel (ambiguity) port+=PortProtected
	 *     channel+=Channel (ambiguity) signal+=SignalProtected
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPrivate (ambiguity) port+=PortProtected
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPublic (ambiguity) port+=PortProtected
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariableProtected
	 *     function+=Function (ambiguity) buffer+=BufferProtected
	 *     function+=Function (ambiguity) channel+=ChannelProtected
	 *     function+=Function (ambiguity) function+=FunctionProtected
	 *     function+=Function (ambiguity) port+=PortProtected
	 *     function+=Function (ambiguity) signal+=SignalProtected
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPrivate (ambiguity) port+=PortProtected
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPublic (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPublic (ambiguity) port+=PortProtected
	 *     function+=FunctionPublic (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariableProtected
	 *     port+=Port (ambiguity) buffer+=BufferProtected
	 *     port+=Port (ambiguity) channel+=ChannelProtected
	 *     port+=Port (ambiguity) function+=FunctionProtected
	 *     port+=Port (ambiguity) port+=PortProtected
	 *     port+=Port (ambiguity) signal+=SignalProtected
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariableProtected
	 *     port+=PortPrivate (ambiguity) buffer+=BufferProtected
	 *     port+=PortPrivate (ambiguity) channel+=ChannelProtected
	 *     port+=PortPrivate (ambiguity) function+=FunctionProtected
	 *     port+=PortPrivate (ambiguity) port+=PortProtected
	 *     port+=PortPrivate (ambiguity) signal+=SignalProtected
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariableProtected
	 *     port+=PortPublic (ambiguity) buffer+=BufferProtected
	 *     port+=PortPublic (ambiguity) channel+=ChannelProtected
	 *     port+=PortPublic (ambiguity) function+=FunctionProtected
	 *     port+=PortPublic (ambiguity) port+=PortProtected
	 *     port+=PortPublic (ambiguity) signal+=SignalProtected
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariableProtected
	 *     signal+=Signal (ambiguity) buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) function+=FunctionProtected
	 *     signal+=Signal (ambiguity) port+=PortProtected
	 *     signal+=Signal (ambiguity) signal+=SignalProtected
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPrivate (ambiguity) port+=PortProtected
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPublic (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPublic (ambiguity) port+=PortProtected
	 *     signal+=SignalPublic (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     variable+=Variable (ambiguity) buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) function+=FunctionProtected
	 *     variable+=Variable (ambiguity) port+=PortProtected
	 *     variable+=Variable (ambiguity) signal+=SignalProtected
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePrivate (ambiguity) port+=PortProtected
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePublic (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePublic (ambiguity) port+=PortProtected
	 *     variable+=VariablePublic (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariableProtected
	 */
	protected void emit_Procedure_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) channel+=Channel
	 *     buffer+=Buffer (ambiguity) function+=Function
	 *     buffer+=Buffer (ambiguity) port+=Port
	 *     buffer+=Buffer (ambiguity) signal+=Signal
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=Variable
	 *     channel+=Channel (ambiguity) buffer+=Buffer
	 *     channel+=Channel (ambiguity) channel+=Channel
	 *     channel+=Channel (ambiguity) function+=Function
	 *     channel+=Channel (ambiguity) port+=Port
	 *     channel+=Channel (ambiguity) signal+=Signal
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=Variable
	 *     function+=Function (ambiguity) buffer+=Buffer
	 *     function+=Function (ambiguity) channel+=Channel
	 *     function+=Function (ambiguity) function+=Function
	 *     function+=Function (ambiguity) port+=Port
	 *     function+=Function (ambiguity) signal+=Signal
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=Variable
	 *     port+=Port (ambiguity) buffer+=Buffer
	 *     port+=Port (ambiguity) channel+=Channel
	 *     port+=Port (ambiguity) function+=Function
	 *     port+=Port (ambiguity) port+=Port
	 *     port+=Port (ambiguity) signal+=Signal
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=Variable
	 *     signal+=Signal (ambiguity) buffer+=Buffer
	 *     signal+=Signal (ambiguity) channel+=Channel
	 *     signal+=Signal (ambiguity) function+=Function
	 *     signal+=Signal (ambiguity) port+=Port
	 *     signal+=Signal (ambiguity) signal+=Signal
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     variable+=Variable (ambiguity) buffer+=Buffer
	 *     variable+=Variable (ambiguity) channel+=Channel
	 *     variable+=Variable (ambiguity) function+=Function
	 *     variable+=Variable (ambiguity) port+=Port
	 *     variable+=Variable (ambiguity) signal+=Signal
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=Variable
	 */
	protected void emit_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPrivate (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPrivate (ambiguity) channel+=Channel
	 *     buffer+=BufferPrivate (ambiguity) function+=Function
	 *     buffer+=BufferPrivate (ambiguity) port+=Port
	 *     buffer+=BufferPrivate (ambiguity) signal+=Signal
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=Variable
	 *     buffer+=BufferProtected (ambiguity) buffer+=Buffer
	 *     buffer+=BufferProtected (ambiguity) channel+=Channel
	 *     buffer+=BufferProtected (ambiguity) function+=Function
	 *     buffer+=BufferProtected (ambiguity) port+=Port
	 *     buffer+=BufferProtected (ambiguity) signal+=Signal
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=Variable
	 *     buffer+=BufferPublic (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPublic (ambiguity) channel+=Channel
	 *     buffer+=BufferPublic (ambiguity) function+=Function
	 *     buffer+=BufferPublic (ambiguity) port+=Port
	 *     buffer+=BufferPublic (ambiguity) signal+=Signal
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=Variable
	 *     channel+=ChannelPrivate (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPrivate (ambiguity) channel+=Channel
	 *     channel+=ChannelPrivate (ambiguity) function+=Function
	 *     channel+=ChannelPrivate (ambiguity) port+=Port
	 *     channel+=ChannelPrivate (ambiguity) signal+=Signal
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=Variable
	 *     channel+=ChannelProtected (ambiguity) buffer+=Buffer
	 *     channel+=ChannelProtected (ambiguity) channel+=Channel
	 *     channel+=ChannelProtected (ambiguity) function+=Function
	 *     channel+=ChannelProtected (ambiguity) port+=Port
	 *     channel+=ChannelProtected (ambiguity) signal+=Signal
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=Variable
	 *     channel+=ChannelPublic (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPublic (ambiguity) channel+=Channel
	 *     channel+=ChannelPublic (ambiguity) function+=Function
	 *     channel+=ChannelPublic (ambiguity) port+=Port
	 *     channel+=ChannelPublic (ambiguity) signal+=Signal
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=Variable
	 *     function+=FunctionPrivate (ambiguity) buffer+=Buffer
	 *     function+=FunctionPrivate (ambiguity) channel+=Channel
	 *     function+=FunctionPrivate (ambiguity) function+=Function
	 *     function+=FunctionPrivate (ambiguity) port+=Port
	 *     function+=FunctionPrivate (ambiguity) signal+=Signal
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=Variable
	 *     function+=FunctionProtected (ambiguity) buffer+=Buffer
	 *     function+=FunctionProtected (ambiguity) channel+=Channel
	 *     function+=FunctionProtected (ambiguity) function+=Function
	 *     function+=FunctionProtected (ambiguity) port+=Port
	 *     function+=FunctionProtected (ambiguity) signal+=Signal
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=Variable
	 *     function+=FunctionPublic (ambiguity) buffer+=Buffer
	 *     function+=FunctionPublic (ambiguity) channel+=Channel
	 *     function+=FunctionPublic (ambiguity) function+=Function
	 *     function+=FunctionPublic (ambiguity) port+=Port
	 *     function+=FunctionPublic (ambiguity) signal+=Signal
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=Variable
	 *     port+=PortPrivate (ambiguity) buffer+=Buffer
	 *     port+=PortPrivate (ambiguity) channel+=Channel
	 *     port+=PortPrivate (ambiguity) function+=Function
	 *     port+=PortPrivate (ambiguity) port+=Port
	 *     port+=PortPrivate (ambiguity) signal+=Signal
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=Variable
	 *     port+=PortProtected (ambiguity) buffer+=Buffer
	 *     port+=PortProtected (ambiguity) channel+=Channel
	 *     port+=PortProtected (ambiguity) function+=Function
	 *     port+=PortProtected (ambiguity) port+=Port
	 *     port+=PortProtected (ambiguity) signal+=Signal
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=Variable
	 *     port+=PortPublic (ambiguity) buffer+=Buffer
	 *     port+=PortPublic (ambiguity) channel+=Channel
	 *     port+=PortPublic (ambiguity) function+=Function
	 *     port+=PortPublic (ambiguity) port+=Port
	 *     port+=PortPublic (ambiguity) signal+=Signal
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=Variable
	 *     signal+=SignalPrivate (ambiguity) buffer+=Buffer
	 *     signal+=SignalPrivate (ambiguity) channel+=Channel
	 *     signal+=SignalPrivate (ambiguity) function+=Function
	 *     signal+=SignalPrivate (ambiguity) port+=Port
	 *     signal+=SignalPrivate (ambiguity) signal+=Signal
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=Variable
	 *     signal+=SignalProtected (ambiguity) buffer+=Buffer
	 *     signal+=SignalProtected (ambiguity) channel+=Channel
	 *     signal+=SignalProtected (ambiguity) function+=Function
	 *     signal+=SignalProtected (ambiguity) port+=Port
	 *     signal+=SignalProtected (ambiguity) signal+=Signal
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=Variable
	 *     signal+=SignalPublic (ambiguity) buffer+=Buffer
	 *     signal+=SignalPublic (ambiguity) channel+=Channel
	 *     signal+=SignalPublic (ambiguity) function+=Function
	 *     signal+=SignalPublic (ambiguity) port+=Port
	 *     signal+=SignalPublic (ambiguity) signal+=Signal
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     variable+=VariablePrivate (ambiguity) buffer+=Buffer
	 *     variable+=VariablePrivate (ambiguity) channel+=Channel
	 *     variable+=VariablePrivate (ambiguity) function+=Function
	 *     variable+=VariablePrivate (ambiguity) port+=Port
	 *     variable+=VariablePrivate (ambiguity) signal+=Signal
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=Variable
	 *     variable+=VariableProtected (ambiguity) buffer+=Buffer
	 *     variable+=VariableProtected (ambiguity) channel+=Channel
	 *     variable+=VariableProtected (ambiguity) function+=Function
	 *     variable+=VariableProtected (ambiguity) port+=Port
	 *     variable+=VariableProtected (ambiguity) signal+=Signal
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=Variable
	 *     variable+=VariablePublic (ambiguity) buffer+=Buffer
	 *     variable+=VariablePublic (ambiguity) channel+=Channel
	 *     variable+=VariablePublic (ambiguity) function+=Function
	 *     variable+=VariablePublic (ambiguity) port+=Port
	 *     variable+=VariablePublic (ambiguity) signal+=Signal
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=Variable
	 */
	protected void emit_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')? '@property:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     name=ESIdentifier ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=FormalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=FormalParameter '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=FunctionalParameter ')' '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName ('(' ')')? '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '}' (rule end)
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) execution=ProcedureExecution
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 */
	protected void emit_Procedure_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPrivate (ambiguity) port+=PortPrivate
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePrivate
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPrivate (ambiguity) function+=FunctionPrivate
	 *     port+=PortPrivate (ambiguity) port+=PortPrivate
	 *     port+=PortPrivate (ambiguity) signal+=SignalPrivate
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPrivate (ambiguity) port+=PortPrivate
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePrivate (ambiguity) port+=PortPrivate
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferProtected (ambiguity) port+=PortPrivate
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPublic (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) port+=PortPrivate
	 *     channel+=Channel (ambiguity) signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelProtected (ambiguity) port+=PortPrivate
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPublic (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePrivate
	 *     function+=Function (ambiguity) buffer+=BufferPrivate
	 *     function+=Function (ambiguity) channel+=ChannelPrivate
	 *     function+=Function (ambiguity) function+=FunctionPrivate
	 *     function+=Function (ambiguity) port+=PortPrivate
	 *     function+=Function (ambiguity) signal+=SignalPrivate
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionProtected (ambiguity) port+=PortPrivate
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPublic (ambiguity) port+=PortPrivate
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePrivate
	 *     port+=Port (ambiguity) buffer+=BufferPrivate
	 *     port+=Port (ambiguity) channel+=ChannelPrivate
	 *     port+=Port (ambiguity) function+=FunctionPrivate
	 *     port+=Port (ambiguity) port+=PortPrivate
	 *     port+=Port (ambiguity) signal+=SignalPrivate
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePrivate
	 *     port+=PortProtected (ambiguity) buffer+=BufferPrivate
	 *     port+=PortProtected (ambiguity) channel+=ChannelPrivate
	 *     port+=PortProtected (ambiguity) function+=FunctionPrivate
	 *     port+=PortProtected (ambiguity) port+=PortPrivate
	 *     port+=PortProtected (ambiguity) signal+=SignalPrivate
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePrivate
	 *     port+=PortPublic (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPublic (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPublic (ambiguity) function+=FunctionPrivate
	 *     port+=PortPublic (ambiguity) port+=PortPrivate
	 *     port+=PortPublic (ambiguity) signal+=SignalPrivate
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) port+=PortPrivate
	 *     signal+=Signal (ambiguity) signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalProtected (ambiguity) port+=PortPrivate
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPublic (ambiguity) port+=PortPrivate
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) port+=PortPrivate
	 *     variable+=Variable (ambiguity) signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePrivate
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPrivate
	 *     variable+=VariableProtected (ambiguity) port+=PortPrivate
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPrivate
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePublic (ambiguity) port+=PortPrivate
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_Procedure_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@parameter:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule start)
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     (rule start) (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     (rule start) (ambiguity) (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     (rule start) (ambiguity) (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     (rule start) (ambiguity) (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     (rule start) (ambiguity) (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 */
	protected void emit_PropertyPart_ParameterKeyword_1_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule start)
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (rule end)
	 */
	protected void emit_PropertyPart_PropertyKeyword_3_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@public:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 */
	protected void emit_PropertyPart_PublicKeyword_3_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@input:' | '@inout:' | '@output:' | '@return:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     (rule start) '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule start)
	 *     (rule start) '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     (rule start) '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     (rule start) '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     (rule start) '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     (rule start) '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     (rule start) '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (rule end)
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 */
	protected void emit_PropertyPart___InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@property:' | '@public:' | '@protected:' | '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) (rule end)
	 *     buffer+=BufferPrivate (ambiguity) (rule end)
	 *     buffer+=BufferProtected (ambiguity) (rule end)
	 *     buffer+=BufferPublic (ambiguity) (rule end)
	 *     channel+=Channel (ambiguity) (rule end)
	 *     channel+=ChannelPrivate (ambiguity) (rule end)
	 *     channel+=ChannelProtected (ambiguity) (rule end)
	 *     channel+=ChannelPublic (ambiguity) (rule end)
	 *     function+=Function (ambiguity) (rule end)
	 *     function+=FunctionPrivate (ambiguity) (rule end)
	 *     function+=FunctionProtected (ambiguity) (rule end)
	 *     function+=FunctionPublic (ambiguity) (rule end)
	 *     port+=Port (ambiguity) (rule end)
	 *     port+=PortPrivate (ambiguity) (rule end)
	 *     port+=PortProtected (ambiguity) (rule end)
	 *     port+=PortPublic (ambiguity) (rule end)
	 *     signal+=Signal (ambiguity) (rule end)
	 *     signal+=SignalPrivate (ambiguity) (rule end)
	 *     signal+=SignalProtected (ambiguity) (rule end)
	 *     signal+=SignalPublic (ambiguity) (rule end)
	 *     typedef+=TypeDefinition (ambiguity) (rule end)
	 *     variable+=Variable (ambiguity) (rule end)
	 *     variable+=VariablePrivate (ambiguity) (rule end)
	 *     variable+=VariableProtected (ambiguity) (rule end)
	 *     variable+=VariablePublic (ambiguity) (rule end)
	 */
	protected void emit_PropertyPart___PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'input' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_PropertyPart___RightCurlyBracketKeyword_1_0_1_0_1_1_2_InputKeyword_1_0_1_0_0_LeftCurlyBracketKeyword_1_0_1_0_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'inout' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_PropertyPart___RightCurlyBracketKeyword_1_0_1_1_1_1_2_InoutKeyword_1_0_1_1_0_LeftCurlyBracketKeyword_1_0_1_1_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'output' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_PropertyPart___RightCurlyBracketKeyword_1_0_1_2_1_1_2_OutputKeyword_1_0_1_2_0_LeftCurlyBracketKeyword_1_0_1_2_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'return' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_PropertyPart___RightCurlyBracketKeyword_1_0_1_3_1_1_2_ReturnKeyword_1_0_1_3_0_LeftCurlyBracketKeyword_1_0_1_3_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@output:')* '@return:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@output:')* '@return:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? (ambiguity) parameter+=ParameterReturn
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterReturn
	 *     channel+=Channel (ambiguity) parameter+=ParameterReturn
	 *     function+=Function (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 *     port+=Port (ambiguity) parameter+=ParameterReturn
	 *     signal+=Signal (ambiguity) parameter+=ParameterReturn
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterReturn
	 *     variable+=Variable (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_OutputKeyword_2_2_0__a_ReturnKeyword_2_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@return:')* '@output:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@return:')* '@output:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? (ambiguity) parameter+=ParameterOutput
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterOutput
	 *     channel+=Channel (ambiguity) parameter+=ParameterOutput
	 *     function+=Function (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterOutput
	 *     port+=Port (ambiguity) parameter+=ParameterOutput
	 *     signal+=Signal (ambiguity) parameter+=ParameterOutput
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterOutput
	 *     variable+=Variable (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_PropertyPart_____InoutKeyword_2_1_0_or_InputKeyword_2_0_0_or_ReturnKeyword_2_3_0__a_OutputKeyword_2_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@inout:' | '@output:' | '@return:')* '@input:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@inout:' | '@output:' | '@return:')* '@input:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? (ambiguity) parameter+=ParameterInput
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterInput
	 *     channel+=Channel (ambiguity) parameter+=ParameterInput
	 *     function+=Function (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterInput
	 *     port+=Port (ambiguity) parameter+=ParameterInput
	 *     signal+=Signal (ambiguity) parameter+=ParameterInput
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterInput
	 *     variable+=Variable (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_PropertyPart_____InoutKeyword_2_1_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InputKeyword_2_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@output:' | '@return:')* '@inout:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@output:' | '@return:')* '@inout:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? (ambiguity) parameter+=ParameterInout
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterInout
	 *     channel+=Channel (ambiguity) parameter+=ParameterInout
	 *     function+=Function (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterInout
	 *     port+=Port (ambiguity) parameter+=ParameterInout
	 *     signal+=Signal (ambiguity) parameter+=ParameterInout
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterInout
	 *     variable+=Variable (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_PropertyPart_____InputKeyword_2_0_0_or_OutputKeyword_2_2_0_or_ReturnKeyword_2_3_0__a_InoutKeyword_2_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPublic (ambiguity) port+=PortPublic
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPublic (ambiguity) port+=PortPublic
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPublic (ambiguity) port+=PortPublic
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePublic
	 *     port+=PortPublic (ambiguity) buffer+=BufferPublic
	 *     port+=PortPublic (ambiguity) channel+=ChannelPublic
	 *     port+=PortPublic (ambiguity) function+=FunctionPublic
	 *     port+=PortPublic (ambiguity) port+=PortPublic
	 *     port+=PortPublic (ambiguity) signal+=SignalPublic
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPublic (ambiguity) port+=PortPublic
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePublic (ambiguity) port+=PortPublic
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePublic
	 */
	protected void emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) port+=PortPublic
	 *     buffer+=Buffer (ambiguity) signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPublic
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferProtected (ambiguity) port+=PortPublic
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePublic
	 *     channel+=Channel (ambiguity) buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) function+=FunctionPublic
	 *     channel+=Channel (ambiguity) port+=PortPublic
	 *     channel+=Channel (ambiguity) signal+=SignalPublic
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPublic
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelProtected (ambiguity) port+=PortPublic
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePublic
	 *     function+=Function (ambiguity) buffer+=BufferPublic
	 *     function+=Function (ambiguity) channel+=ChannelPublic
	 *     function+=Function (ambiguity) function+=FunctionPublic
	 *     function+=Function (ambiguity) port+=PortPublic
	 *     function+=Function (ambiguity) signal+=SignalPublic
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPrivate (ambiguity) port+=PortPublic
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePublic
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPublic
	 *     function+=FunctionProtected (ambiguity) port+=PortPublic
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPublic
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePublic
	 *     port+=Port (ambiguity) buffer+=BufferPublic
	 *     port+=Port (ambiguity) channel+=ChannelPublic
	 *     port+=Port (ambiguity) function+=FunctionPublic
	 *     port+=Port (ambiguity) port+=PortPublic
	 *     port+=Port (ambiguity) signal+=SignalPublic
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePublic
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPublic
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPublic
	 *     port+=PortPrivate (ambiguity) function+=FunctionPublic
	 *     port+=PortPrivate (ambiguity) port+=PortPublic
	 *     port+=PortPrivate (ambiguity) signal+=SignalPublic
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePublic
	 *     port+=PortProtected (ambiguity) buffer+=BufferPublic
	 *     port+=PortProtected (ambiguity) channel+=ChannelPublic
	 *     port+=PortProtected (ambiguity) function+=FunctionPublic
	 *     port+=PortProtected (ambiguity) port+=PortPublic
	 *     port+=PortProtected (ambiguity) signal+=SignalPublic
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePublic
	 *     signal+=Signal (ambiguity) buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) function+=FunctionPublic
	 *     signal+=Signal (ambiguity) port+=PortPublic
	 *     signal+=Signal (ambiguity) signal+=SignalPublic
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPrivate (ambiguity) port+=PortPublic
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePublic
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPublic
	 *     signal+=SignalProtected (ambiguity) port+=PortPublic
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPublic
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     variable+=Variable (ambiguity) buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) function+=FunctionPublic
	 *     variable+=Variable (ambiguity) port+=PortPublic
	 *     variable+=Variable (ambiguity) signal+=SignalPublic
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePrivate (ambiguity) port+=PortPublic
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePublic
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPublic
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPublic
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPublic
	 *     variable+=VariableProtected (ambiguity) port+=PortPublic
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPublic
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePublic
	 */
	protected void emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__a_PublicKeyword_3_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')? '@public:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 */
	protected void emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0__q_PublicKeyword_3_1_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferProtected (ambiguity) port+=PortProtected
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelProtected (ambiguity) port+=PortProtected
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariableProtected
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionProtected (ambiguity) function+=FunctionProtected
	 *     function+=FunctionProtected (ambiguity) port+=PortProtected
	 *     function+=FunctionProtected (ambiguity) signal+=SignalProtected
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariableProtected
	 *     port+=PortProtected (ambiguity) buffer+=BufferProtected
	 *     port+=PortProtected (ambiguity) channel+=ChannelProtected
	 *     port+=PortProtected (ambiguity) function+=FunctionProtected
	 *     port+=PortProtected (ambiguity) port+=PortProtected
	 *     port+=PortProtected (ambiguity) signal+=SignalProtected
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariableProtected
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalProtected (ambiguity) function+=FunctionProtected
	 *     signal+=SignalProtected (ambiguity) port+=PortProtected
	 *     signal+=SignalProtected (ambiguity) signal+=SignalProtected
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferProtected
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelProtected
	 *     variable+=VariableProtected (ambiguity) function+=FunctionProtected
	 *     variable+=VariableProtected (ambiguity) port+=PortProtected
	 *     variable+=VariableProtected (ambiguity) signal+=SignalProtected
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariableProtected
	 */
	protected void emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) port+=PortProtected
	 *     buffer+=Buffer (ambiguity) signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPrivate (ambiguity) port+=PortProtected
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPublic (ambiguity) port+=PortProtected
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariableProtected
	 *     channel+=Channel (ambiguity) buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) function+=FunctionProtected
	 *     channel+=Channel (ambiguity) port+=PortProtected
	 *     channel+=Channel (ambiguity) signal+=SignalProtected
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPrivate (ambiguity) port+=PortProtected
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPublic (ambiguity) port+=PortProtected
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariableProtected
	 *     function+=Function (ambiguity) buffer+=BufferProtected
	 *     function+=Function (ambiguity) channel+=ChannelProtected
	 *     function+=Function (ambiguity) function+=FunctionProtected
	 *     function+=Function (ambiguity) port+=PortProtected
	 *     function+=Function (ambiguity) signal+=SignalProtected
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPrivate (ambiguity) port+=PortProtected
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPublic (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPublic (ambiguity) port+=PortProtected
	 *     function+=FunctionPublic (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariableProtected
	 *     port+=Port (ambiguity) buffer+=BufferProtected
	 *     port+=Port (ambiguity) channel+=ChannelProtected
	 *     port+=Port (ambiguity) function+=FunctionProtected
	 *     port+=Port (ambiguity) port+=PortProtected
	 *     port+=Port (ambiguity) signal+=SignalProtected
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariableProtected
	 *     port+=PortPrivate (ambiguity) buffer+=BufferProtected
	 *     port+=PortPrivate (ambiguity) channel+=ChannelProtected
	 *     port+=PortPrivate (ambiguity) function+=FunctionProtected
	 *     port+=PortPrivate (ambiguity) port+=PortProtected
	 *     port+=PortPrivate (ambiguity) signal+=SignalProtected
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariableProtected
	 *     port+=PortPublic (ambiguity) buffer+=BufferProtected
	 *     port+=PortPublic (ambiguity) channel+=ChannelProtected
	 *     port+=PortPublic (ambiguity) function+=FunctionProtected
	 *     port+=PortPublic (ambiguity) port+=PortProtected
	 *     port+=PortPublic (ambiguity) signal+=SignalProtected
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariableProtected
	 *     signal+=Signal (ambiguity) buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) function+=FunctionProtected
	 *     signal+=Signal (ambiguity) port+=PortProtected
	 *     signal+=Signal (ambiguity) signal+=SignalProtected
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPrivate (ambiguity) port+=PortProtected
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPublic (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPublic (ambiguity) port+=PortProtected
	 *     signal+=SignalPublic (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     variable+=Variable (ambiguity) buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) function+=FunctionProtected
	 *     variable+=Variable (ambiguity) port+=PortProtected
	 *     variable+=Variable (ambiguity) signal+=SignalProtected
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePrivate (ambiguity) port+=PortProtected
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePublic (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePublic (ambiguity) port+=PortProtected
	 *     variable+=VariablePublic (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariableProtected
	 */
	protected void emit_PropertyPart_____PrivateKeyword_3_3_0_or_PropertyKeyword_3_0_0_or_PublicKeyword_3_1_0__a_ProtectedKeyword_3_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) channel+=Channel
	 *     buffer+=Buffer (ambiguity) function+=Function
	 *     buffer+=Buffer (ambiguity) port+=Port
	 *     buffer+=Buffer (ambiguity) signal+=Signal
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=Variable
	 *     channel+=Channel (ambiguity) buffer+=Buffer
	 *     channel+=Channel (ambiguity) channel+=Channel
	 *     channel+=Channel (ambiguity) function+=Function
	 *     channel+=Channel (ambiguity) port+=Port
	 *     channel+=Channel (ambiguity) signal+=Signal
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=Variable
	 *     function+=Function (ambiguity) buffer+=Buffer
	 *     function+=Function (ambiguity) channel+=Channel
	 *     function+=Function (ambiguity) function+=Function
	 *     function+=Function (ambiguity) port+=Port
	 *     function+=Function (ambiguity) signal+=Signal
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=Variable
	 *     port+=Port (ambiguity) buffer+=Buffer
	 *     port+=Port (ambiguity) channel+=Channel
	 *     port+=Port (ambiguity) function+=Function
	 *     port+=Port (ambiguity) port+=Port
	 *     port+=Port (ambiguity) signal+=Signal
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=Variable
	 *     signal+=Signal (ambiguity) buffer+=Buffer
	 *     signal+=Signal (ambiguity) channel+=Channel
	 *     signal+=Signal (ambiguity) function+=Function
	 *     signal+=Signal (ambiguity) port+=Port
	 *     signal+=Signal (ambiguity) signal+=Signal
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     variable+=Variable (ambiguity) buffer+=Buffer
	 *     variable+=Variable (ambiguity) channel+=Channel
	 *     variable+=Variable (ambiguity) function+=Function
	 *     variable+=Variable (ambiguity) port+=Port
	 *     variable+=Variable (ambiguity) signal+=Signal
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=Variable
	 */
	protected void emit_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPrivate (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPrivate (ambiguity) channel+=Channel
	 *     buffer+=BufferPrivate (ambiguity) function+=Function
	 *     buffer+=BufferPrivate (ambiguity) port+=Port
	 *     buffer+=BufferPrivate (ambiguity) signal+=Signal
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=Variable
	 *     buffer+=BufferProtected (ambiguity) buffer+=Buffer
	 *     buffer+=BufferProtected (ambiguity) channel+=Channel
	 *     buffer+=BufferProtected (ambiguity) function+=Function
	 *     buffer+=BufferProtected (ambiguity) port+=Port
	 *     buffer+=BufferProtected (ambiguity) signal+=Signal
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=Variable
	 *     buffer+=BufferPublic (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPublic (ambiguity) channel+=Channel
	 *     buffer+=BufferPublic (ambiguity) function+=Function
	 *     buffer+=BufferPublic (ambiguity) port+=Port
	 *     buffer+=BufferPublic (ambiguity) signal+=Signal
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=Variable
	 *     channel+=ChannelPrivate (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPrivate (ambiguity) channel+=Channel
	 *     channel+=ChannelPrivate (ambiguity) function+=Function
	 *     channel+=ChannelPrivate (ambiguity) port+=Port
	 *     channel+=ChannelPrivate (ambiguity) signal+=Signal
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=Variable
	 *     channel+=ChannelProtected (ambiguity) buffer+=Buffer
	 *     channel+=ChannelProtected (ambiguity) channel+=Channel
	 *     channel+=ChannelProtected (ambiguity) function+=Function
	 *     channel+=ChannelProtected (ambiguity) port+=Port
	 *     channel+=ChannelProtected (ambiguity) signal+=Signal
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=Variable
	 *     channel+=ChannelPublic (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPublic (ambiguity) channel+=Channel
	 *     channel+=ChannelPublic (ambiguity) function+=Function
	 *     channel+=ChannelPublic (ambiguity) port+=Port
	 *     channel+=ChannelPublic (ambiguity) signal+=Signal
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=Variable
	 *     function+=FunctionPrivate (ambiguity) buffer+=Buffer
	 *     function+=FunctionPrivate (ambiguity) channel+=Channel
	 *     function+=FunctionPrivate (ambiguity) function+=Function
	 *     function+=FunctionPrivate (ambiguity) port+=Port
	 *     function+=FunctionPrivate (ambiguity) signal+=Signal
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=Variable
	 *     function+=FunctionProtected (ambiguity) buffer+=Buffer
	 *     function+=FunctionProtected (ambiguity) channel+=Channel
	 *     function+=FunctionProtected (ambiguity) function+=Function
	 *     function+=FunctionProtected (ambiguity) port+=Port
	 *     function+=FunctionProtected (ambiguity) signal+=Signal
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=Variable
	 *     function+=FunctionPublic (ambiguity) buffer+=Buffer
	 *     function+=FunctionPublic (ambiguity) channel+=Channel
	 *     function+=FunctionPublic (ambiguity) function+=Function
	 *     function+=FunctionPublic (ambiguity) port+=Port
	 *     function+=FunctionPublic (ambiguity) signal+=Signal
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=Variable
	 *     port+=PortPrivate (ambiguity) buffer+=Buffer
	 *     port+=PortPrivate (ambiguity) channel+=Channel
	 *     port+=PortPrivate (ambiguity) function+=Function
	 *     port+=PortPrivate (ambiguity) port+=Port
	 *     port+=PortPrivate (ambiguity) signal+=Signal
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=Variable
	 *     port+=PortProtected (ambiguity) buffer+=Buffer
	 *     port+=PortProtected (ambiguity) channel+=Channel
	 *     port+=PortProtected (ambiguity) function+=Function
	 *     port+=PortProtected (ambiguity) port+=Port
	 *     port+=PortProtected (ambiguity) signal+=Signal
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=Variable
	 *     port+=PortPublic (ambiguity) buffer+=Buffer
	 *     port+=PortPublic (ambiguity) channel+=Channel
	 *     port+=PortPublic (ambiguity) function+=Function
	 *     port+=PortPublic (ambiguity) port+=Port
	 *     port+=PortPublic (ambiguity) signal+=Signal
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=Variable
	 *     signal+=SignalPrivate (ambiguity) buffer+=Buffer
	 *     signal+=SignalPrivate (ambiguity) channel+=Channel
	 *     signal+=SignalPrivate (ambiguity) function+=Function
	 *     signal+=SignalPrivate (ambiguity) port+=Port
	 *     signal+=SignalPrivate (ambiguity) signal+=Signal
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=Variable
	 *     signal+=SignalProtected (ambiguity) buffer+=Buffer
	 *     signal+=SignalProtected (ambiguity) channel+=Channel
	 *     signal+=SignalProtected (ambiguity) function+=Function
	 *     signal+=SignalProtected (ambiguity) port+=Port
	 *     signal+=SignalProtected (ambiguity) signal+=Signal
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=Variable
	 *     signal+=SignalPublic (ambiguity) buffer+=Buffer
	 *     signal+=SignalPublic (ambiguity) channel+=Channel
	 *     signal+=SignalPublic (ambiguity) function+=Function
	 *     signal+=SignalPublic (ambiguity) port+=Port
	 *     signal+=SignalPublic (ambiguity) signal+=Signal
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     variable+=VariablePrivate (ambiguity) buffer+=Buffer
	 *     variable+=VariablePrivate (ambiguity) channel+=Channel
	 *     variable+=VariablePrivate (ambiguity) function+=Function
	 *     variable+=VariablePrivate (ambiguity) port+=Port
	 *     variable+=VariablePrivate (ambiguity) signal+=Signal
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=Variable
	 *     variable+=VariableProtected (ambiguity) buffer+=Buffer
	 *     variable+=VariableProtected (ambiguity) channel+=Channel
	 *     variable+=VariableProtected (ambiguity) function+=Function
	 *     variable+=VariableProtected (ambiguity) port+=Port
	 *     variable+=VariableProtected (ambiguity) signal+=Signal
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=Variable
	 *     variable+=VariablePublic (ambiguity) buffer+=Buffer
	 *     variable+=VariablePublic (ambiguity) channel+=Channel
	 *     variable+=VariablePublic (ambiguity) function+=Function
	 *     variable+=VariablePublic (ambiguity) port+=Port
	 *     variable+=VariablePublic (ambiguity) signal+=Signal
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=Variable
	 */
	protected void emit_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PropertyKeyword_3_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')? '@property:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     (rule start) '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule start)
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) (rule end)
	 */
	protected void emit_PropertyPart_____PrivateKeyword_3_3_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__q_PropertyKeyword_3_0_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPrivate (ambiguity) port+=PortPrivate
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePrivate
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPrivate (ambiguity) function+=FunctionPrivate
	 *     port+=PortPrivate (ambiguity) port+=PortPrivate
	 *     port+=PortPrivate (ambiguity) signal+=SignalPrivate
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPrivate (ambiguity) port+=PortPrivate
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePrivate (ambiguity) port+=PortPrivate
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferProtected (ambiguity) port+=PortPrivate
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPublic (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) port+=PortPrivate
	 *     channel+=Channel (ambiguity) signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelProtected (ambiguity) port+=PortPrivate
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPublic (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePrivate
	 *     function+=Function (ambiguity) buffer+=BufferPrivate
	 *     function+=Function (ambiguity) channel+=ChannelPrivate
	 *     function+=Function (ambiguity) function+=FunctionPrivate
	 *     function+=Function (ambiguity) port+=PortPrivate
	 *     function+=Function (ambiguity) signal+=SignalPrivate
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionProtected (ambiguity) port+=PortPrivate
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPublic (ambiguity) port+=PortPrivate
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePrivate
	 *     port+=Port (ambiguity) buffer+=BufferPrivate
	 *     port+=Port (ambiguity) channel+=ChannelPrivate
	 *     port+=Port (ambiguity) function+=FunctionPrivate
	 *     port+=Port (ambiguity) port+=PortPrivate
	 *     port+=Port (ambiguity) signal+=SignalPrivate
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePrivate
	 *     port+=PortProtected (ambiguity) buffer+=BufferPrivate
	 *     port+=PortProtected (ambiguity) channel+=ChannelPrivate
	 *     port+=PortProtected (ambiguity) function+=FunctionPrivate
	 *     port+=PortProtected (ambiguity) port+=PortPrivate
	 *     port+=PortProtected (ambiguity) signal+=SignalPrivate
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePrivate
	 *     port+=PortPublic (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPublic (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPublic (ambiguity) function+=FunctionPrivate
	 *     port+=PortPublic (ambiguity) port+=PortPrivate
	 *     port+=PortPublic (ambiguity) signal+=SignalPrivate
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) port+=PortPrivate
	 *     signal+=Signal (ambiguity) signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalProtected (ambiguity) port+=PortPrivate
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPublic (ambiguity) port+=PortPrivate
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) port+=PortPrivate
	 *     variable+=Variable (ambiguity) signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePrivate
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPrivate
	 *     variable+=VariableProtected (ambiguity) port+=PortPrivate
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPrivate
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePublic (ambiguity) port+=PortPrivate
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_PropertyPart_____PropertyKeyword_3_0_0_or_ProtectedKeyword_3_2_0_or_PublicKeyword_3_1_0__a_PrivateKeyword_3_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'moc:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) ('state' | 'pseudostate') '<' (ambiguity) kind=PseudostateInitialKind
	 */
	protected void emit_PseudostateInitial_MocKeyword_1_0_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'state' | 'pseudostate'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '<' 'moc:'? kind=PseudostateInitialKind
	 */
	protected void emit_PseudostateInitial_PseudostateKeyword_1_0_0_1_or_StateKeyword_1_0_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '@transition:'? '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     name='#init' (ambiguity) (rule end)
	 *     name='#initial' (ambiguity) (rule end)
	 *     name=ESIdentifier (ambiguity) (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) (rule end)
	 */
	protected void emit_PseudostateInitial_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_TransitionKeyword_3_0_1_0_q_RightCurlyBracketKeyword_3_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@transition:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name='#init' '{' (ambiguity) transition+=Transition
	 *     name='#initial' '{' (ambiguity) transition+=Transition
	 *     name=ESIdentifier '{' (ambiguity) transition+=Transition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) transition+=Transition
	 */
	protected void emit_PseudostateInitial_TransitionKeyword_3_0_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     DesignDebugTrace*
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) 'routine' name=ESIdentifier
	 *     macro?='macro' (ambiguity) 'routine' name=ESIdentifier
	 *     visibility=VisibilityKind (ambiguity) 'routine' name=ESIdentifier
	 */
	protected void emit_Routine_DesignDebugTraceParserRuleCall_2_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) '-->' '(' resultSet=FormalParameterSet
	 *     name=ESIdentifier (ambiguity) '-->' resultSet=FormalParameterSet
	 *     name=ESIdentifier (ambiguity) bodyBlock=BlockStatement
	 *     unrestrictedName=UnrestrictedName (ambiguity) '-->' '(' resultSet=FormalParameterSet
	 *     unrestrictedName=UnrestrictedName (ambiguity) '-->' resultSet=FormalParameterSet
	 *     unrestrictedName=UnrestrictedName (ambiguity) bodyBlock=BlockStatement
	 */
	protected void emit_Routine___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) ';' (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) ';' (rule end)
	 */
	protected void emit_SignalImpl___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) ';' (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) ';' (rule end)
	 */
	protected void emit_Signal___LeftParenthesisKeyword_5_0_RightParenthesisKeyword_5_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) (rule end)
	 */
	protected void emit_SimpleState_SemicolonKeyword_5_1_or___LeftCurlyBracketKeyword_5_0_0_RightCurlyBracketKeyword_5_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('<' 'moc:'? 'simple' '>')?
	 *
	 * This ambiguous syntax occurs at:
	 *     simple?='state' (ambiguity) name=ESIdentifier
	 */
	protected void emit_SimpleState___LessThanSignKeyword_2_0_MocKeyword_2_1_q_SimpleKeyword_2_2_GreaterThanSignKeyword_2_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ':' | '=' | ':=' | '::='
	 *
	 * This ambiguous syntax occurs at:
	 *     xliaProperty=[PropertyDefinition|ESIdentifier] (ambiguity) value=Expression
	 */
	protected void emit_SlotParameter_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_0_or_EqualsSignKeyword_1_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '=' | ':' | ':=' | '::='
	 *
	 * This ambiguous syntax occurs at:
	 *     xliaProperty=[PropertyDefinition|ESIdentifier] (ambiguity) value=Expression
	 */
	protected void emit_SlotProperty_ColonColonEqualsSignKeyword_1_3_or_ColonEqualsSignKeyword_1_2_or_ColonKeyword_1_1_or_EqualsSignKeyword_1_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'moc:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     simple?='state' '<' (ambiguity) 'start' '>' name=ESIdentifier
	 */
	protected void emit_StartState_MocKeyword_1_0_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier (ambiguity) (rule end)
	 *     simple?='#start' (ambiguity) (rule end)
	 *     unrestrictedName=UnrestrictedName (ambiguity) (rule end)
	 */
	protected void emit_StartState_SemicolonKeyword_3_1_or___LeftCurlyBracketKeyword_3_0_0_RightCurlyBracketKeyword_3_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('id:' | 'name:')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@region(' (ambiguity) name=ESIdentifier
	 */
	protected void emit_StatemachineNamedRegion___IdKeyword_2_0_or_NameKeyword_2_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@state:' | '@region:'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) vertex+=Pseudostate
	 *     (rule start) (ambiguity) vertex+=State
	 */
	protected void emit_StatemachineRegion_RegionKeyword_1_1_or_StateKeyword_1_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@inout:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@input:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 */
	protected void emit_Statemachine_InoutKeyword_8_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@routine:' | '@macro:'
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     procedure+=Procedure (ambiguity) routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* (ambiguity) routine+=Routine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 */
	protected void emit_Statemachine_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@output:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@input:' | '@inout:' | '@return:')? (ambiguity))* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) (('@input:' | '@inout:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 */
	protected void emit_Statemachine_OutputKeyword_8_2_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@parameter:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         buffer+=BufferPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         channel+=ChannelPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         signal+=SignalPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         port+=PortProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         channel+=ChannelPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         function+=FunctionPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         '@public:' 
	 *         variable+=VariablePublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@property:'? 
	 *         (('@public:' | '@protected:' | '@private:')? '@property:'?)* 
	 *         region+=StatemachineNamedRegion
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     name=ESIdentifier '{' (ambiguity) (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     name=ESIdentifier '{' (ambiguity) (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     name=ESIdentifier '{' (ambiguity) (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     name=ESIdentifier '{' (ambiguity) (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@inout:' | '@output:' | '@return:')* '@input:')+ parameter+=ParameterInput
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@input:' | '@inout:' | '@output:')* '@return:')+ parameter+=ParameterReturn
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@input:' | '@inout:' | '@return:')* '@output:')+ parameter+=ParameterOutput
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) (('@input:' | '@output:' | '@return:')* '@inout:')+ parameter+=ParameterInout
	 */
	protected void emit_Statemachine_ParameterKeyword_7_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@procedure:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     procedure+=Procedure (ambiguity) procedure+=Procedure
	 */
	protected void emit_Statemachine_ProcedureKeyword_10_0_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         buffer+=BufferPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         channel+=ChannelPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         function+=FunctionPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         signal+=SignalPrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@private:' 
	 *         variable+=VariablePrivate
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         buffer+=BufferProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         channel+=ChannelProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         function+=FunctionProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         port+=PortProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         signal+=SignalProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@protected:' 
	 *         variable+=VariableProtected
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         channel+=ChannelPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         function+=FunctionPublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@public:' 
	 *         variable+=VariablePublic
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* routine+=Routine
	 */
	protected void emit_Statemachine_PropertyKeyword_9_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@public:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         function+=Function
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         typedef+=TypeDefinition
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         ('@input:' | '@inout:' | '@output:' | '@return:')* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         '@property:' 
	 *         variable+=Variable
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_PublicKeyword_9_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@composite:' | '@model:' | '@prototype:' | '@instance:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     instance+=InstanceMachine (ambiguity) '@statemachine:' machine+=Statemachine
	 *     instance+=InstanceMachine (ambiguity) '}' (rule end)
	 *     instance+=InstanceMachine (ambiguity) execution=ModelOfExecution
	 *     instance+=InstanceMachine (ambiguity) interaction=ModelOfInteraction
	 *     machine+=AnyMachineBlock (ambiguity) '@statemachine:' machine+=Statemachine
	 *     machine+=AnyMachineBlock (ambiguity) '}' (rule end)
	 *     machine+=AnyMachineBlock (ambiguity) execution=ModelOfExecution
	 *     machine+=AnyMachineBlock (ambiguity) interaction=ModelOfInteraction
	 *     machine+=Statemachine (ambiguity) '}' (rule end)
	 *     machine+=Statemachine (ambiguity) execution=ModelOfExecution
	 *     machine+=Statemachine (ambiguity) interaction=ModelOfInteraction
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     procedure+=Procedure (ambiguity) '@statemachine:' machine+=Statemachine
	 *     routine+=Routine (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 */
	protected void emit_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@composite:' | '@model:' | '@prototype:' | '@instance:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     name=ESIdentifier '{' '@parameter:'? '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     procedure+=Procedure (ambiguity) '}' (rule end)
	 *     procedure+=Procedure (ambiguity) execution=ModelOfExecution
	 *     procedure+=Procedure (ambiguity) interaction=ModelOfInteraction
	 *     routine+=Routine (ambiguity) '}' (rule end)
	 *     routine+=Routine (ambiguity) execution=ModelOfExecution
	 *     routine+=Routine (ambiguity) interaction=ModelOfInteraction
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) '}' (rule end)
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) interaction=ModelOfInteraction
	 */
	protected void emit_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@input:' | '@inout:' | '@output:' | '@return:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     buffer+=Buffer (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     channel+=Channel (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     function+=Function (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     function+=Function (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     port+=Port (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     port+=Port (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     signal+=Signal (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' port+=PortPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@private:' variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@procedure:' procedure+=Procedure
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' function+=FunctionProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' port+=PortProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' signal+=SignalProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@protected:' variable+=VariableProtected
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' function+=FunctionPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' port+=PortPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' signal+=SignalPublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* '@public:' variable+=VariablePublic
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* procedure+=Procedure
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineNamedRegion
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegion
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* region+=StatemachineRegionLite
	 *     variable+=Variable (ambiguity) '@property:'? (('@public:' | '@protected:' | '@private:')? '@property:'?)* routine+=Routine
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' buffer+=Buffer
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' channel+=Channel
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' function+=Function
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' port+=Port
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' signal+=Signal
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@property:' variable+=Variable
	 */
	protected void emit_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('<' 'moc:'? ModelOfComputationKing '>')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'statemachine' (ambiguity) name=ESIdentifier
	 *     dense_timed?='timed#dense' 'statemachine' (ambiguity) name=ESIdentifier
	 *     design=DesignKind 'statemachine' (ambiguity) name=ESIdentifier
	 *     discrete_timed?='timed#discrete' 'statemachine' (ambiguity) name=ESIdentifier
	 *     input_enabled?='input_enabled' 'statemachine' (ambiguity) name=ESIdentifier
	 *     lifeline?='lifeline' 'statemachine' (ambiguity) name=ESIdentifier
	 *     timed?='timed' 'statemachine' (ambiguity) name=ESIdentifier
	 *     visibility=VisibilityKind 'statemachine' (ambiguity) name=ESIdentifier
	 */
	protected void emit_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@routine:' | '@macro:')?
	 *
	 * This ambiguous syntax occurs at:
	 *     routine+=Routine (ambiguity) routine+=Routine
	 */
	protected void emit_Statemachine___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@property:' | '@public:' | '@protected:' | '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer (ambiguity) procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=Buffer (ambiguity) region+=StatemachineRegion
	 *     buffer+=Buffer (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=Buffer (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=BufferPrivate (ambiguity) region+=StatemachineRegion
	 *     buffer+=BufferPrivate (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=BufferPrivate (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=BufferProtected (ambiguity) region+=StatemachineRegion
	 *     buffer+=BufferProtected (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=BufferProtected (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=BufferPublic (ambiguity) region+=StatemachineRegion
	 *     buffer+=BufferPublic (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=BufferPublic (ambiguity) routine+=Routine
	 *     channel+=Channel (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=Channel (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel (ambiguity) procedure+=Procedure
	 *     channel+=Channel (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=Channel (ambiguity) region+=StatemachineRegion
	 *     channel+=Channel (ambiguity) region+=StatemachineRegionLite
	 *     channel+=Channel (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=ChannelPrivate (ambiguity) region+=StatemachineRegion
	 *     channel+=ChannelPrivate (ambiguity) region+=StatemachineRegionLite
	 *     channel+=ChannelPrivate (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=ChannelProtected (ambiguity) region+=StatemachineRegion
	 *     channel+=ChannelProtected (ambiguity) region+=StatemachineRegionLite
	 *     channel+=ChannelProtected (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=ChannelPublic (ambiguity) region+=StatemachineRegion
	 *     channel+=ChannelPublic (ambiguity) region+=StatemachineRegionLite
	 *     channel+=ChannelPublic (ambiguity) routine+=Routine
	 *     function+=Function (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=Function (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function (ambiguity) procedure+=Procedure
	 *     function+=Function (ambiguity) region+=StatemachineNamedRegion
	 *     function+=Function (ambiguity) region+=StatemachineRegion
	 *     function+=Function (ambiguity) region+=StatemachineRegionLite
	 *     function+=Function (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     function+=FunctionPrivate (ambiguity) region+=StatemachineRegion
	 *     function+=FunctionPrivate (ambiguity) region+=StatemachineRegionLite
	 *     function+=FunctionPrivate (ambiguity) routine+=Routine
	 *     function+=FunctionProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionProtected (ambiguity) procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) region+=StatemachineNamedRegion
	 *     function+=FunctionProtected (ambiguity) region+=StatemachineRegion
	 *     function+=FunctionProtected (ambiguity) region+=StatemachineRegionLite
	 *     function+=FunctionProtected (ambiguity) routine+=Routine
	 *     function+=FunctionPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPublic (ambiguity) procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) region+=StatemachineNamedRegion
	 *     function+=FunctionPublic (ambiguity) region+=StatemachineRegion
	 *     function+=FunctionPublic (ambiguity) region+=StatemachineRegionLite
	 *     function+=FunctionPublic (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) routine+=Routine
	 *     port+=Port (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=Port (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port (ambiguity) procedure+=Procedure
	 *     port+=Port (ambiguity) region+=StatemachineNamedRegion
	 *     port+=Port (ambiguity) region+=StatemachineRegion
	 *     port+=Port (ambiguity) region+=StatemachineRegionLite
	 *     port+=Port (ambiguity) routine+=Routine
	 *     port+=PortPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPrivate (ambiguity) procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     port+=PortPrivate (ambiguity) region+=StatemachineRegion
	 *     port+=PortPrivate (ambiguity) region+=StatemachineRegionLite
	 *     port+=PortPrivate (ambiguity) routine+=Routine
	 *     port+=PortProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortProtected (ambiguity) procedure+=Procedure
	 *     port+=PortProtected (ambiguity) region+=StatemachineNamedRegion
	 *     port+=PortProtected (ambiguity) region+=StatemachineRegion
	 *     port+=PortProtected (ambiguity) region+=StatemachineRegionLite
	 *     port+=PortProtected (ambiguity) routine+=Routine
	 *     port+=PortPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPublic (ambiguity) procedure+=Procedure
	 *     port+=PortPublic (ambiguity) region+=StatemachineNamedRegion
	 *     port+=PortPublic (ambiguity) region+=StatemachineRegion
	 *     port+=PortPublic (ambiguity) region+=StatemachineRegionLite
	 *     port+=PortPublic (ambiguity) routine+=Routine
	 *     signal+=Signal (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=Signal (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal (ambiguity) procedure+=Procedure
	 *     signal+=Signal (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=Signal (ambiguity) region+=StatemachineRegion
	 *     signal+=Signal (ambiguity) region+=StatemachineRegionLite
	 *     signal+=Signal (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=SignalPrivate (ambiguity) region+=StatemachineRegion
	 *     signal+=SignalPrivate (ambiguity) region+=StatemachineRegionLite
	 *     signal+=SignalPrivate (ambiguity) routine+=Routine
	 *     signal+=SignalProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalProtected (ambiguity) procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=SignalProtected (ambiguity) region+=StatemachineRegion
	 *     signal+=SignalProtected (ambiguity) region+=StatemachineRegionLite
	 *     signal+=SignalProtected (ambiguity) routine+=Routine
	 *     signal+=SignalPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPublic (ambiguity) procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=SignalPublic (ambiguity) region+=StatemachineRegion
	 *     signal+=SignalPublic (ambiguity) region+=StatemachineRegionLite
	 *     signal+=SignalPublic (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition (ambiguity) region+=StatemachineRegion
	 *     typedef+=TypeDefinition (ambiguity) region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition (ambiguity) routine+=Routine
	 *     variable+=Variable (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=Variable (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable (ambiguity) procedure+=Procedure
	 *     variable+=Variable (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=Variable (ambiguity) region+=StatemachineRegion
	 *     variable+=Variable (ambiguity) region+=StatemachineRegionLite
	 *     variable+=Variable (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=VariablePrivate (ambiguity) region+=StatemachineRegion
	 *     variable+=VariablePrivate (ambiguity) region+=StatemachineRegionLite
	 *     variable+=VariablePrivate (ambiguity) routine+=Routine
	 *     variable+=VariableProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariableProtected (ambiguity) procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=VariableProtected (ambiguity) region+=StatemachineRegion
	 *     variable+=VariableProtected (ambiguity) region+=StatemachineRegionLite
	 *     variable+=VariableProtected (ambiguity) routine+=Routine
	 *     variable+=VariablePublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePublic (ambiguity) procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=VariablePublic (ambiguity) region+=StatemachineRegion
	 *     variable+=VariablePublic (ambiguity) region+=StatemachineRegionLite
	 *     variable+=VariablePublic (ambiguity) routine+=Routine
	 */
	protected void emit_Statemachine___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'input' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_Statemachine___RightCurlyBracketKeyword_7_0_1_0_1_1_2_InputKeyword_7_0_1_0_0_LeftCurlyBracketKeyword_7_0_1_0_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'inout' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_Statemachine___RightCurlyBracketKeyword_7_0_1_1_1_1_2_InoutKeyword_7_0_1_1_0_LeftCurlyBracketKeyword_7_0_1_1_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'output' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_Statemachine___RightCurlyBracketKeyword_7_0_1_2_1_1_2_OutputKeyword_7_0_1_2_0_LeftCurlyBracketKeyword_7_0_1_2_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('}' 'return' '{')?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_Statemachine___RightCurlyBracketKeyword_7_0_1_3_1_1_2_ReturnKeyword_7_0_1_3_0_LeftCurlyBracketKeyword_7_0_1_3_1_1_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@composite:' | '@model:' | '@instance:')* '@prototype:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@composite:' | '@model:' | '@instance:')* '@prototype:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     machine+=Statemachine (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0__a_PrototypeKeyword_11_0_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:')?
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=Statemachine (ambiguity) machine+=Statemachine
	 */
	protected void emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_StatemachineKeyword_11_0_0_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@composite:' | '@prototype:' | '@instance:')* '@model:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@composite:' | '@prototype:' | '@instance:')* '@model:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     machine+=Statemachine (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_PrototypeKeyword_11_0_3_0__a_ModelKeyword_11_0_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@composite:' | '@model:' | '@prototype:')* '@instance:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 */
	protected void emit_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@composite:' | '@model:' | '@prototype:')* '@instance:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         instance+=InstanceMachine
	 *     )
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     machine+=Statemachine (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine (ambiguity) instance+=InstanceMachine
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) instance+=InstanceMachine
	 */
	protected void emit_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@output:')* '@return:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@output:')* '@return:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterReturn
	 *     channel+=Channel (ambiguity) parameter+=ParameterReturn
	 *     function+=Function (ambiguity) parameter+=ParameterReturn
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterReturn
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterReturn
	 *     port+=Port (ambiguity) parameter+=ParameterReturn
	 *     signal+=Signal (ambiguity) parameter+=ParameterReturn
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterReturn
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) parameter+=ParameterReturn
	 *     variable+=Variable (ambiguity) parameter+=ParameterReturn
	 */
	protected void emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@return:')* '@output:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@return:')* '@output:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterOutput
	 *     channel+=Channel (ambiguity) parameter+=ParameterOutput
	 *     function+=Function (ambiguity) parameter+=ParameterOutput
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterOutput
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterOutput
	 *     port+=Port (ambiguity) parameter+=ParameterOutput
	 *     signal+=Signal (ambiguity) parameter+=ParameterOutput
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterOutput
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) parameter+=ParameterOutput
	 *     variable+=Variable (ambiguity) parameter+=ParameterOutput
	 */
	protected void emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@inout:' | '@return:')? '@output:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     parameter+=ParameterInout '@output:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInout '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInout '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInput '@output:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@output:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 */
	protected void emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__q_OutputKeyword_8_2_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@inout:' | '@output:' | '@return:')* '@input:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@inout:' | '@output:' | '@return:')* '@input:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterInput
	 *     channel+=Channel (ambiguity) parameter+=ParameterInput
	 *     function+=Function (ambiguity) parameter+=ParameterInput
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterInput
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterInput
	 *     port+=Port (ambiguity) parameter+=ParameterInput
	 *     signal+=Signal (ambiguity) parameter+=ParameterInput
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterInput
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) parameter+=ParameterInput
	 *     variable+=Variable (ambiguity) parameter+=ParameterInput
	 */
	protected void emit_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@output:' | '@return:')* '@inout:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@output:' | '@return:')* '@inout:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) parameter+=ParameterInout
	 *     channel+=Channel (ambiguity) parameter+=ParameterInout
	 *     function+=Function (ambiguity) parameter+=ParameterInout
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInout '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInout (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInput '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterInput (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterOutput '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterOutput (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterReturn '}' (ambiguity) parameter+=ParameterInout
	 *     parameter+=ParameterReturn (ambiguity) parameter+=ParameterInout
	 *     port+=Port (ambiguity) parameter+=ParameterInout
	 *     signal+=Signal (ambiguity) parameter+=ParameterInout
	 *     typedef+=TypeDefinition (ambiguity) parameter+=ParameterInout
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) parameter+=ParameterInout
	 *     variable+=Variable (ambiguity) parameter+=ParameterInout
	 */
	protected void emit_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InoutKeyword_8_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@input:' | '@output:' | '@return:')? '@inout:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         buffer+=Buffer 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@inout:'? 
	 *         (ambiguity) 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     buffer+=Buffer '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=Buffer '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=Buffer '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=Buffer '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=Channel '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=Channel '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=Channel '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=Function '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=Function '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=Function '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@parameter:'? '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '}' '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '}' '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '}' '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '}' '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=Port '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=Port '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=Port '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=Signal '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=Signal '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=Signal '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     typedef+=TypeDefinition '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=Variable '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=Variable '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=Variable '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@inout:'? (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InoutKeyword_8_1_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:' | '@instance:')* '@composite:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:' | '@instance:')* '@composite:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     machine+=Statemachine (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_CompositeKeyword_11_0_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPublic (ambiguity) port+=PortPublic
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPublic (ambiguity) port+=PortPublic
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPublic (ambiguity) port+=PortPublic
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePublic
	 *     port+=PortPublic (ambiguity) buffer+=BufferPublic
	 *     port+=PortPublic (ambiguity) channel+=ChannelPublic
	 *     port+=PortPublic (ambiguity) function+=FunctionPublic
	 *     port+=PortPublic (ambiguity) port+=PortPublic
	 *     port+=PortPublic (ambiguity) signal+=SignalPublic
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPublic (ambiguity) port+=PortPublic
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePublic (ambiguity) port+=PortPublic
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePublic
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) port+=PortPublic
	 *     buffer+=Buffer (ambiguity) signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPublic
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferProtected (ambiguity) port+=PortPublic
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePublic
	 *     channel+=Channel (ambiguity) buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) function+=FunctionPublic
	 *     channel+=Channel (ambiguity) port+=PortPublic
	 *     channel+=Channel (ambiguity) signal+=SignalPublic
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPublic
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelProtected (ambiguity) port+=PortPublic
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePublic
	 *     function+=Function (ambiguity) buffer+=BufferPublic
	 *     function+=Function (ambiguity) channel+=ChannelPublic
	 *     function+=Function (ambiguity) function+=FunctionPublic
	 *     function+=Function (ambiguity) port+=PortPublic
	 *     function+=Function (ambiguity) signal+=SignalPublic
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPrivate (ambiguity) port+=PortPublic
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePublic
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPublic
	 *     function+=FunctionProtected (ambiguity) port+=PortPublic
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPublic
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariablePublic
	 *     port+=Port (ambiguity) buffer+=BufferPublic
	 *     port+=Port (ambiguity) channel+=ChannelPublic
	 *     port+=Port (ambiguity) function+=FunctionPublic
	 *     port+=Port (ambiguity) port+=PortPublic
	 *     port+=Port (ambiguity) signal+=SignalPublic
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePublic
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPublic
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPublic
	 *     port+=PortPrivate (ambiguity) function+=FunctionPublic
	 *     port+=PortPrivate (ambiguity) port+=PortPublic
	 *     port+=PortPrivate (ambiguity) signal+=SignalPublic
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePublic
	 *     port+=PortProtected (ambiguity) buffer+=BufferPublic
	 *     port+=PortProtected (ambiguity) channel+=ChannelPublic
	 *     port+=PortProtected (ambiguity) function+=FunctionPublic
	 *     port+=PortProtected (ambiguity) port+=PortPublic
	 *     port+=PortProtected (ambiguity) signal+=SignalPublic
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePublic
	 *     signal+=Signal (ambiguity) buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) function+=FunctionPublic
	 *     signal+=Signal (ambiguity) port+=PortPublic
	 *     signal+=Signal (ambiguity) signal+=SignalPublic
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPrivate (ambiguity) port+=PortPublic
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePublic
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPublic
	 *     signal+=SignalProtected (ambiguity) port+=PortPublic
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPublic
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     variable+=Variable (ambiguity) buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) function+=FunctionPublic
	 *     variable+=Variable (ambiguity) port+=PortPublic
	 *     variable+=Variable (ambiguity) signal+=SignalPublic
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePrivate (ambiguity) port+=PortPublic
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePublic
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPublic
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPublic
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPublic
	 *     variable+=VariableProtected (ambiguity) port+=PortPublic
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPublic
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePublic
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__a_PublicKeyword_9_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')? '@public:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@output:'? 
	 *         (('@input:' | '@inout:' | '@return:')? '@output:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@inout:'? 
	 *         (('@input:' | '@output:' | '@return:')? '@inout:'?)* 
	 *         '@public:'? 
	 *         (ambiguity) 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=Buffer '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=Buffer '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferProtected '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPublic '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=Channel '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=Channel '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=Channel '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=Channel '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelProtected '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPublic '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=Function '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=Function '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=Function '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=Function '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPrivate '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionProtected '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPublic '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@parameter:'? '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=Port '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=Port '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=Port '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPrivate '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortProtected '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPublic '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=Signal '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=Signal '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=Signal '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=Signal '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalPrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPrivate '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalProtected '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalPublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPublic '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@inout:'? (('@input:' | '@output:' | '@return:')? '@inout:'?)* '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=Variable '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=Variable '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=Variable '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=Variable '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' buffer+=Buffer
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' channel+=Channel
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' function+=Function
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' port+=Port
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' signal+=Signal
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@property:' variable+=Variable
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariablePrivate '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariablePrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePrivate '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariableProtected '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariableProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariableProtected '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariablePublic '@public:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariablePublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePublic '@public:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@public:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferProtected (ambiguity) port+=PortProtected
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelProtected (ambiguity) port+=PortProtected
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariableProtected
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionProtected (ambiguity) function+=FunctionProtected
	 *     function+=FunctionProtected (ambiguity) port+=PortProtected
	 *     function+=FunctionProtected (ambiguity) signal+=SignalProtected
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariableProtected
	 *     port+=PortProtected (ambiguity) buffer+=BufferProtected
	 *     port+=PortProtected (ambiguity) channel+=ChannelProtected
	 *     port+=PortProtected (ambiguity) function+=FunctionProtected
	 *     port+=PortProtected (ambiguity) port+=PortProtected
	 *     port+=PortProtected (ambiguity) signal+=SignalProtected
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariableProtected
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalProtected (ambiguity) function+=FunctionProtected
	 *     signal+=SignalProtected (ambiguity) port+=PortProtected
	 *     signal+=SignalProtected (ambiguity) signal+=SignalProtected
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferProtected
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelProtected
	 *     variable+=VariableProtected (ambiguity) function+=FunctionProtected
	 *     variable+=VariableProtected (ambiguity) port+=PortProtected
	 *     variable+=VariableProtected (ambiguity) signal+=SignalProtected
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariableProtected
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) port+=PortProtected
	 *     buffer+=Buffer (ambiguity) signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPrivate (ambiguity) port+=PortProtected
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPublic (ambiguity) port+=PortProtected
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariableProtected
	 *     channel+=Channel (ambiguity) buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) function+=FunctionProtected
	 *     channel+=Channel (ambiguity) port+=PortProtected
	 *     channel+=Channel (ambiguity) signal+=SignalProtected
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPrivate (ambiguity) port+=PortProtected
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPublic (ambiguity) port+=PortProtected
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariableProtected
	 *     function+=Function (ambiguity) buffer+=BufferProtected
	 *     function+=Function (ambiguity) channel+=ChannelProtected
	 *     function+=Function (ambiguity) function+=FunctionProtected
	 *     function+=Function (ambiguity) port+=PortProtected
	 *     function+=Function (ambiguity) signal+=SignalProtected
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPrivate (ambiguity) port+=PortProtected
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPublic (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPublic (ambiguity) port+=PortProtected
	 *     function+=FunctionPublic (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariableProtected
	 *     port+=Port (ambiguity) buffer+=BufferProtected
	 *     port+=Port (ambiguity) channel+=ChannelProtected
	 *     port+=Port (ambiguity) function+=FunctionProtected
	 *     port+=Port (ambiguity) port+=PortProtected
	 *     port+=Port (ambiguity) signal+=SignalProtected
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariableProtected
	 *     port+=PortPrivate (ambiguity) buffer+=BufferProtected
	 *     port+=PortPrivate (ambiguity) channel+=ChannelProtected
	 *     port+=PortPrivate (ambiguity) function+=FunctionProtected
	 *     port+=PortPrivate (ambiguity) port+=PortProtected
	 *     port+=PortPrivate (ambiguity) signal+=SignalProtected
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariableProtected
	 *     port+=PortPublic (ambiguity) buffer+=BufferProtected
	 *     port+=PortPublic (ambiguity) channel+=ChannelProtected
	 *     port+=PortPublic (ambiguity) function+=FunctionProtected
	 *     port+=PortPublic (ambiguity) port+=PortProtected
	 *     port+=PortPublic (ambiguity) signal+=SignalProtected
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariableProtected
	 *     signal+=Signal (ambiguity) buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) function+=FunctionProtected
	 *     signal+=Signal (ambiguity) port+=PortProtected
	 *     signal+=Signal (ambiguity) signal+=SignalProtected
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPrivate (ambiguity) port+=PortProtected
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPublic (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPublic (ambiguity) port+=PortProtected
	 *     signal+=SignalPublic (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     variable+=Variable (ambiguity) buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) function+=FunctionProtected
	 *     variable+=Variable (ambiguity) port+=PortProtected
	 *     variable+=Variable (ambiguity) signal+=SignalProtected
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePrivate (ambiguity) port+=PortProtected
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePublic (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePublic (ambiguity) port+=PortProtected
	 *     variable+=VariablePublic (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariableProtected
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) channel+=Channel
	 *     buffer+=Buffer (ambiguity) function+=Function
	 *     buffer+=Buffer (ambiguity) port+=Port
	 *     buffer+=Buffer (ambiguity) signal+=Signal
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=Variable
	 *     channel+=Channel (ambiguity) buffer+=Buffer
	 *     channel+=Channel (ambiguity) channel+=Channel
	 *     channel+=Channel (ambiguity) function+=Function
	 *     channel+=Channel (ambiguity) port+=Port
	 *     channel+=Channel (ambiguity) signal+=Signal
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=Variable
	 *     function+=Function (ambiguity) buffer+=Buffer
	 *     function+=Function (ambiguity) channel+=Channel
	 *     function+=Function (ambiguity) function+=Function
	 *     function+=Function (ambiguity) port+=Port
	 *     function+=Function (ambiguity) signal+=Signal
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=Variable
	 *     port+=Port (ambiguity) buffer+=Buffer
	 *     port+=Port (ambiguity) channel+=Channel
	 *     port+=Port (ambiguity) function+=Function
	 *     port+=Port (ambiguity) port+=Port
	 *     port+=Port (ambiguity) signal+=Signal
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=Variable
	 *     signal+=Signal (ambiguity) buffer+=Buffer
	 *     signal+=Signal (ambiguity) channel+=Channel
	 *     signal+=Signal (ambiguity) function+=Function
	 *     signal+=Signal (ambiguity) port+=Port
	 *     signal+=Signal (ambiguity) signal+=Signal
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     variable+=Variable (ambiguity) buffer+=Buffer
	 *     variable+=Variable (ambiguity) channel+=Channel
	 *     variable+=Variable (ambiguity) function+=Function
	 *     variable+=Variable (ambiguity) port+=Port
	 *     variable+=Variable (ambiguity) signal+=Signal
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=Variable
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPrivate (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPrivate (ambiguity) channel+=Channel
	 *     buffer+=BufferPrivate (ambiguity) function+=Function
	 *     buffer+=BufferPrivate (ambiguity) port+=Port
	 *     buffer+=BufferPrivate (ambiguity) signal+=Signal
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=Variable
	 *     buffer+=BufferProtected (ambiguity) buffer+=Buffer
	 *     buffer+=BufferProtected (ambiguity) channel+=Channel
	 *     buffer+=BufferProtected (ambiguity) function+=Function
	 *     buffer+=BufferProtected (ambiguity) port+=Port
	 *     buffer+=BufferProtected (ambiguity) signal+=Signal
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=Variable
	 *     buffer+=BufferPublic (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPublic (ambiguity) channel+=Channel
	 *     buffer+=BufferPublic (ambiguity) function+=Function
	 *     buffer+=BufferPublic (ambiguity) port+=Port
	 *     buffer+=BufferPublic (ambiguity) signal+=Signal
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=Variable
	 *     channel+=ChannelPrivate (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPrivate (ambiguity) channel+=Channel
	 *     channel+=ChannelPrivate (ambiguity) function+=Function
	 *     channel+=ChannelPrivate (ambiguity) port+=Port
	 *     channel+=ChannelPrivate (ambiguity) signal+=Signal
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=Variable
	 *     channel+=ChannelProtected (ambiguity) buffer+=Buffer
	 *     channel+=ChannelProtected (ambiguity) channel+=Channel
	 *     channel+=ChannelProtected (ambiguity) function+=Function
	 *     channel+=ChannelProtected (ambiguity) port+=Port
	 *     channel+=ChannelProtected (ambiguity) signal+=Signal
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=Variable
	 *     channel+=ChannelPublic (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPublic (ambiguity) channel+=Channel
	 *     channel+=ChannelPublic (ambiguity) function+=Function
	 *     channel+=ChannelPublic (ambiguity) port+=Port
	 *     channel+=ChannelPublic (ambiguity) signal+=Signal
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=Variable
	 *     function+=FunctionPrivate (ambiguity) buffer+=Buffer
	 *     function+=FunctionPrivate (ambiguity) channel+=Channel
	 *     function+=FunctionPrivate (ambiguity) function+=Function
	 *     function+=FunctionPrivate (ambiguity) port+=Port
	 *     function+=FunctionPrivate (ambiguity) signal+=Signal
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=Variable
	 *     function+=FunctionProtected (ambiguity) buffer+=Buffer
	 *     function+=FunctionProtected (ambiguity) channel+=Channel
	 *     function+=FunctionProtected (ambiguity) function+=Function
	 *     function+=FunctionProtected (ambiguity) port+=Port
	 *     function+=FunctionProtected (ambiguity) signal+=Signal
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=Variable
	 *     function+=FunctionPublic (ambiguity) buffer+=Buffer
	 *     function+=FunctionPublic (ambiguity) channel+=Channel
	 *     function+=FunctionPublic (ambiguity) function+=Function
	 *     function+=FunctionPublic (ambiguity) port+=Port
	 *     function+=FunctionPublic (ambiguity) signal+=Signal
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=Variable
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=Variable
	 *     port+=PortPrivate (ambiguity) buffer+=Buffer
	 *     port+=PortPrivate (ambiguity) channel+=Channel
	 *     port+=PortPrivate (ambiguity) function+=Function
	 *     port+=PortPrivate (ambiguity) port+=Port
	 *     port+=PortPrivate (ambiguity) signal+=Signal
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=Variable
	 *     port+=PortProtected (ambiguity) buffer+=Buffer
	 *     port+=PortProtected (ambiguity) channel+=Channel
	 *     port+=PortProtected (ambiguity) function+=Function
	 *     port+=PortProtected (ambiguity) port+=Port
	 *     port+=PortProtected (ambiguity) signal+=Signal
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=Variable
	 *     port+=PortPublic (ambiguity) buffer+=Buffer
	 *     port+=PortPublic (ambiguity) channel+=Channel
	 *     port+=PortPublic (ambiguity) function+=Function
	 *     port+=PortPublic (ambiguity) port+=Port
	 *     port+=PortPublic (ambiguity) signal+=Signal
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=Variable
	 *     signal+=SignalPrivate (ambiguity) buffer+=Buffer
	 *     signal+=SignalPrivate (ambiguity) channel+=Channel
	 *     signal+=SignalPrivate (ambiguity) function+=Function
	 *     signal+=SignalPrivate (ambiguity) port+=Port
	 *     signal+=SignalPrivate (ambiguity) signal+=Signal
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=Variable
	 *     signal+=SignalProtected (ambiguity) buffer+=Buffer
	 *     signal+=SignalProtected (ambiguity) channel+=Channel
	 *     signal+=SignalProtected (ambiguity) function+=Function
	 *     signal+=SignalProtected (ambiguity) port+=Port
	 *     signal+=SignalProtected (ambiguity) signal+=Signal
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=Variable
	 *     signal+=SignalPublic (ambiguity) buffer+=Buffer
	 *     signal+=SignalPublic (ambiguity) channel+=Channel
	 *     signal+=SignalPublic (ambiguity) function+=Function
	 *     signal+=SignalPublic (ambiguity) port+=Port
	 *     signal+=SignalPublic (ambiguity) signal+=Signal
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     variable+=VariablePrivate (ambiguity) buffer+=Buffer
	 *     variable+=VariablePrivate (ambiguity) channel+=Channel
	 *     variable+=VariablePrivate (ambiguity) function+=Function
	 *     variable+=VariablePrivate (ambiguity) port+=Port
	 *     variable+=VariablePrivate (ambiguity) signal+=Signal
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=Variable
	 *     variable+=VariableProtected (ambiguity) buffer+=Buffer
	 *     variable+=VariableProtected (ambiguity) channel+=Channel
	 *     variable+=VariableProtected (ambiguity) function+=Function
	 *     variable+=VariableProtected (ambiguity) port+=Port
	 *     variable+=VariableProtected (ambiguity) signal+=Signal
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=Variable
	 *     variable+=VariablePublic (ambiguity) buffer+=Buffer
	 *     variable+=VariablePublic (ambiguity) channel+=Channel
	 *     variable+=VariablePublic (ambiguity) function+=Function
	 *     variable+=VariablePublic (ambiguity) port+=Port
	 *     variable+=VariablePublic (ambiguity) signal+=Signal
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=Variable
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')? '@property:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=Buffer ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     channel+=Channel ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     function+=Function ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     name=ESIdentifier '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     port+=Port ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     signal+=Signal ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' port+=PortPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' port+=PortProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' port+=PortPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) procedure+=Procedure
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegion
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) region+=StatemachineRegionLite
	 *     variable+=Variable ('@input:' | '@inout:' | '@output:' | '@return:')* '@property:'? (ambiguity) routine+=Routine
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPrivate (ambiguity) port+=PortPrivate
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePrivate
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPrivate (ambiguity) function+=FunctionPrivate
	 *     port+=PortPrivate (ambiguity) port+=PortPrivate
	 *     port+=PortPrivate (ambiguity) signal+=SignalPrivate
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPrivate (ambiguity) port+=PortPrivate
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePrivate (ambiguity) port+=PortPrivate
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferProtected (ambiguity) port+=PortPrivate
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPublic (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) port+=PortPrivate
	 *     channel+=Channel (ambiguity) signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelProtected (ambiguity) port+=PortPrivate
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPublic (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePrivate
	 *     function+=Function (ambiguity) buffer+=BufferPrivate
	 *     function+=Function (ambiguity) channel+=ChannelPrivate
	 *     function+=Function (ambiguity) function+=FunctionPrivate
	 *     function+=Function (ambiguity) port+=PortPrivate
	 *     function+=Function (ambiguity) signal+=SignalPrivate
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionProtected (ambiguity) port+=PortPrivate
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPublic (ambiguity) port+=PortPrivate
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@output:'? (('@input:' | '@inout:' | '@return:')? '@output:'?)* (ambiguity) variable+=VariablePrivate
	 *     port+=Port (ambiguity) buffer+=BufferPrivate
	 *     port+=Port (ambiguity) channel+=ChannelPrivate
	 *     port+=Port (ambiguity) function+=FunctionPrivate
	 *     port+=Port (ambiguity) port+=PortPrivate
	 *     port+=Port (ambiguity) signal+=SignalPrivate
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePrivate
	 *     port+=PortProtected (ambiguity) buffer+=BufferPrivate
	 *     port+=PortProtected (ambiguity) channel+=ChannelPrivate
	 *     port+=PortProtected (ambiguity) function+=FunctionPrivate
	 *     port+=PortProtected (ambiguity) port+=PortPrivate
	 *     port+=PortProtected (ambiguity) signal+=SignalPrivate
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePrivate
	 *     port+=PortPublic (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPublic (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPublic (ambiguity) function+=FunctionPrivate
	 *     port+=PortPublic (ambiguity) port+=PortPrivate
	 *     port+=PortPublic (ambiguity) signal+=SignalPrivate
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) port+=PortPrivate
	 *     signal+=Signal (ambiguity) signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalProtected (ambiguity) port+=PortPrivate
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPublic (ambiguity) port+=PortPrivate
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) port+=PortPrivate
	 *     variable+=Variable (ambiguity) signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePrivate
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPrivate
	 *     variable+=VariableProtected (ambiguity) port+=PortPrivate
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPrivate
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePublic (ambiguity) port+=PortPrivate
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     typedef?='struct' '{' (ambiguity) property+=Variable
	 */
	protected void emit_StructureTypeDefinitionImpl_PropertyKeyword_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier 'struct' '{' (ambiguity) property+=Variable
	 *     unrestrictedName=UnrestrictedName 'struct' '{' (ambiguity) property+=Variable
	 */
	protected void emit_StructureTypeDefinition_PropertyKeyword_7_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'struct' '{' (ambiguity) property+=Variable
	 */
	protected void emit_StructureType_PropertyKeyword_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'moc:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '<' (ambiguity) isElse?='else'
	 *     (rule start) '<' (ambiguity) moc=TransitionMoc
	 */
	protected void emit_TransitionMoe_MocKeyword_1_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'prior:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     isElse?='else' ',' (ambiguity) priority=EInt
	 *     moc=TransitionMoc ',' (ambiguity) priority=EInt
	 */
	protected void emit_TransitionMoe_PriorKeyword_1_0_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'prior:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '<' (ambiguity) priority=EInt
	 */
	protected void emit_TransitionMoe_PriorKeyword_1_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@guard:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'transition' '{' '@trigger:'? (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     (rule start) 'transition' '{' '@trigger:'? (ambiguity) tguard=TransitionTimedGuard
	 *     moe=TransitionMoe '{' '@trigger:'? (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     moe=TransitionMoe '{' '@trigger:'? (ambiguity) tguard=TransitionTimedGuard
	 *     name=ESIdentifier '{' '@trigger:'? (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     name=ESIdentifier '{' '@trigger:'? (ambiguity) tguard=TransitionTimedGuard
	 *     transient?='transient' 'transition' '{' '@trigger:'? (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     transient?='transient' 'transition' '{' '@trigger:'? (ambiguity) tguard=TransitionTimedGuard
	 *     trigger+=TransitionTrigger (ambiguity) '@tguard:'? '@effect:' '}' '-->' target=[Vertex|ESUfid]
	 *     trigger+=TransitionTrigger (ambiguity) '@tguard:'? '@effect:' '}' '-->' targetExpression=ValuePureNamedMachineExpression
	 *     trigger+=TransitionTrigger (ambiguity) '@tguard:'? '@effect:' '}' (rule end)
	 *     trigger+=TransitionTrigger (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     trigger+=TransitionTrigger (ambiguity) tguard=TransitionTimedGuard
	 *     unrestrictedName=UnrestrictedName '{' '@trigger:'? (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     unrestrictedName=UnrestrictedName '{' '@trigger:'? (ambiguity) tguard=TransitionTimedGuard
	 */
	protected void emit_Transition_GuardKeyword_6_0_1_0_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@guard:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     target=[Vertex|ESUfid] '{' '@trigger:'? (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     target=[Vertex|ESUfid] '{' '@trigger:'? (ambiguity) tguard=TransitionTimedGuard
	 *     targetExpression=ValuePureNamedMachineExpression '{' '@trigger:'? (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     targetExpression=ValuePureNamedMachineExpression '{' '@trigger:'? (ambiguity) tguard=TransitionTimedGuard
	 *     trigger+=TransitionTrigger (ambiguity) '@tguard:'? '@effect:' '}' (rule end)
	 *     trigger+=TransitionTrigger (ambiguity) '@tguard:'? '@effect:' effect=TransitionEffect
	 *     trigger+=TransitionTrigger (ambiguity) tguard=TransitionTimedGuard
	 */
	protected void emit_Transition_GuardKeyword_6_1_2_0_1_0_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' ('@trigger:'? '@guard:'? '@tguard:'? '@effect:')? '}') | ';'
	 *
	 * This ambiguous syntax occurs at:
	 *     target=[Vertex|ESUfid] (ambiguity) (rule end)
	 *     targetExpression=ValuePureNamedMachineExpression (ambiguity) (rule end)
	 */
	protected void emit_Transition_SemicolonKeyword_6_1_2_1_or___LeftCurlyBracketKeyword_6_1_2_0_0___TriggerKeyword_6_1_2_0_1_0_0_0_q_GuardKeyword_6_1_2_0_1_0_1_1_q_TguardKeyword_6_1_2_0_1_0_2_1_q_EffectKeyword_6_1_2_0_1_0_3__q_RightCurlyBracketKeyword_6_1_2_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@tguard:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'transition' '{' '@trigger:'? '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 *     guard=TransitionGuard (ambiguity) '@effect:' '}' '-->' target=[Vertex|ESUfid]
	 *     guard=TransitionGuard (ambiguity) '@effect:' '}' '-->' targetExpression=ValuePureNamedMachineExpression
	 *     guard=TransitionGuard (ambiguity) '@effect:' '}' (rule end)
	 *     guard=TransitionGuard (ambiguity) '@effect:' effect=TransitionEffect
	 *     moe=TransitionMoe '{' '@trigger:'? '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 *     name=ESIdentifier '{' '@trigger:'? '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 *     transient?='transient' 'transition' '{' '@trigger:'? '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 *     trigger+=TransitionTrigger '@guard:'? (ambiguity) '@effect:' '}' '-->' target=[Vertex|ESUfid]
	 *     trigger+=TransitionTrigger '@guard:'? (ambiguity) '@effect:' '}' '-->' targetExpression=ValuePureNamedMachineExpression
	 *     trigger+=TransitionTrigger '@guard:'? (ambiguity) '@effect:' '}' (rule end)
	 *     trigger+=TransitionTrigger '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 *     unrestrictedName=UnrestrictedName '{' '@trigger:'? '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 */
	protected void emit_Transition_TguardKeyword_6_0_1_0_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@tguard:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     guard=TransitionGuard (ambiguity) '@effect:' '}' (rule end)
	 *     guard=TransitionGuard (ambiguity) '@effect:' effect=TransitionEffect
	 *     target=[Vertex|ESUfid] '{' '@trigger:'? '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 *     targetExpression=ValuePureNamedMachineExpression '{' '@trigger:'? '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 *     trigger+=TransitionTrigger '@guard:'? (ambiguity) '@effect:' '}' (rule end)
	 *     trigger+=TransitionTrigger '@guard:'? (ambiguity) '@effect:' effect=TransitionEffect
	 */
	protected void emit_Transition_TguardKeyword_6_1_2_0_1_0_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@trigger:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'transition' '{' (ambiguity) '@guard:'? '@tguard:'? '@effect:' effect=TransitionEffect
	 *     (rule start) 'transition' '{' (ambiguity) '@guard:'? tguard=TransitionTimedGuard
	 *     (rule start) 'transition' '{' (ambiguity) guard=TransitionGuard
	 *     moe=TransitionMoe '{' (ambiguity) '@guard:'? '@tguard:'? '@effect:' effect=TransitionEffect
	 *     moe=TransitionMoe '{' (ambiguity) '@guard:'? tguard=TransitionTimedGuard
	 *     moe=TransitionMoe '{' (ambiguity) guard=TransitionGuard
	 *     name=ESIdentifier '{' (ambiguity) '@guard:'? '@tguard:'? '@effect:' effect=TransitionEffect
	 *     name=ESIdentifier '{' (ambiguity) '@guard:'? tguard=TransitionTimedGuard
	 *     name=ESIdentifier '{' (ambiguity) guard=TransitionGuard
	 *     transient?='transient' 'transition' '{' (ambiguity) '@guard:'? '@tguard:'? '@effect:' effect=TransitionEffect
	 *     transient?='transient' 'transition' '{' (ambiguity) '@guard:'? tguard=TransitionTimedGuard
	 *     transient?='transient' 'transition' '{' (ambiguity) guard=TransitionGuard
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@guard:'? '@tguard:'? '@effect:' effect=TransitionEffect
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@guard:'? tguard=TransitionTimedGuard
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) guard=TransitionGuard
	 */
	protected void emit_Transition_TriggerKeyword_6_0_1_0_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@trigger:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     target=[Vertex|ESUfid] '{' (ambiguity) '@guard:'? '@tguard:'? '@effect:' effect=TransitionEffect
	 *     target=[Vertex|ESUfid] '{' (ambiguity) '@guard:'? tguard=TransitionTimedGuard
	 *     target=[Vertex|ESUfid] '{' (ambiguity) guard=TransitionGuard
	 *     targetExpression=ValuePureNamedMachineExpression '{' (ambiguity) '@guard:'? '@tguard:'? '@effect:' effect=TransitionEffect
	 *     targetExpression=ValuePureNamedMachineExpression '{' (ambiguity) '@guard:'? tguard=TransitionTimedGuard
	 *     targetExpression=ValuePureNamedMachineExpression '{' (ambiguity) guard=TransitionGuard
	 */
	protected void emit_Transition_TriggerKeyword_6_1_2_0_1_0_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@trigger:'? '@guard:'? '@tguard:'? '@effect:')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'transition' '{' (ambiguity) '}' '-->' target=[Vertex|ESUfid]
	 *     (rule start) 'transition' '{' (ambiguity) '}' '-->' targetExpression=ValuePureNamedMachineExpression
	 *     (rule start) 'transition' '{' (ambiguity) '}' (rule start)
	 *     moe=TransitionMoe '{' (ambiguity) '}' '-->' target=[Vertex|ESUfid]
	 *     moe=TransitionMoe '{' (ambiguity) '}' '-->' targetExpression=ValuePureNamedMachineExpression
	 *     moe=TransitionMoe '{' (ambiguity) '}' (rule end)
	 *     name=ESIdentifier '{' (ambiguity) '}' '-->' target=[Vertex|ESUfid]
	 *     name=ESIdentifier '{' (ambiguity) '}' '-->' targetExpression=ValuePureNamedMachineExpression
	 *     name=ESIdentifier '{' (ambiguity) '}' (rule end)
	 *     transient?='transient' 'transition' '{' (ambiguity) '}' '-->' target=[Vertex|ESUfid]
	 *     transient?='transient' 'transition' '{' (ambiguity) '}' '-->' targetExpression=ValuePureNamedMachineExpression
	 *     transient?='transient' 'transition' '{' (ambiguity) '}' (rule end)
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '}' '-->' target=[Vertex|ESUfid]
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '}' '-->' targetExpression=ValuePureNamedMachineExpression
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '}' (rule end)
	 */
	protected void emit_Transition___TriggerKeyword_6_0_1_0_0_0_q_GuardKeyword_6_0_1_0_1_1_q_TguardKeyword_6_0_1_0_2_1_q_EffectKeyword_6_0_1_0_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     typedef?='union' '{' (ambiguity) property+=Variable
	 */
	protected void emit_UnionTypeDefinitionImpl_PropertyKeyword_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier 'union' '{' (ambiguity) property+=Variable
	 *     unrestrictedName=UnrestrictedName 'union' '{' (ambiguity) property+=Variable
	 */
	protected void emit_UnionTypeDefinition_PropertyKeyword_7_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@property:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'union' '{' (ambiguity) property+=Variable
	 */
	protected void emit_UnionType_PropertyKeyword_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'var'?
	 *
	 * This ambiguous syntax occurs at:
	 *     const?='const' (ambiguity) type=DataType
	 *     macro?='macro' (ambiguity) type=DataType
	 */
	protected void emit_VariableImpl_VarKeyword_1_2_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'var'?
	 *
	 * This ambiguous syntax occurs at:
	 *     macro?='macro' (ambiguity) type=DataType
	 */
	protected void emit_VariableImpl_VarKeyword_1_3_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     FormalParameterOffset?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) direction=ParameterDirectionKind
	 *     (rule start) (ambiguity) name=ESIdentifier
	 *     (rule start) (ambiguity) type=DataType
	 */
	protected void emit_VariableRoutineParameter_FormalParameterOffsetParserRuleCall_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'var'?
	 *
	 * This ambiguous syntax occurs at:
	 *     const?='const' (ambiguity) type=DataType
	 *     const?='final' (ambiguity) type=DataType
	 *     macro?='macro' (ambiguity) type=DataType
	 */
	protected void emit_Variable_VarKeyword_1_2_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'var'?
	 *
	 * This ambiguous syntax occurs at:
	 *     macro?='macro' (ambiguity) type=DataType
	 */
	protected void emit_Variable_VarKeyword_1_3_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'version:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name='package' ',' (ambiguity) value=LiteralFloatExpression
	 *     name='package' ',' (ambiguity) value=LiteralStringExpression
	 *     name='system' ',' (ambiguity) value=LiteralFloatExpression
	 *     name='system' ',' (ambiguity) value=LiteralStringExpression
	 */
	protected void emit_XliaPrologAttribute_VersionKeyword_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@behavior:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     behavior+=Behavior (ambiguity) behavior+=Behavior
	 */
	protected void emit_XliaSystem_BehaviorKeyword_10_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@composite:' | '@machine:'
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     instance+=InstanceMachine '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_XliaSystem_CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@routine:' | '@macro:'
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     procedure+=Procedure (ambiguity) routine+=Routine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 */
	protected void emit_XliaSystem_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@model:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         (ambiguity) 
	 *         (('@prototype:' | '@instance:')? (ambiguity))* 
	 *         ('@composite:' | '@machine:') 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         (ambiguity) 
	 *         (('@prototype:' | '@instance:')? (ambiguity))* 
	 *         ('@composite:' | '@machine:') 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     instance+=InstanceMachine (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     instance+=InstanceMachine (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     procedure+=Procedure (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     routine+=Routine (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* main=MoeBehavior
	 */
	protected void emit_XliaSystem_ModelKeyword_9_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@procedure:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     procedure+=Procedure (ambiguity) procedure+=Procedure
	 */
	protected void emit_XliaSystem_ProcedureKeyword_8_0_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@prototype:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 */
	protected void emit_XliaSystem_PrototypeKeyword_9_2_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@statemachine:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     behavior+=Statemachine (ambiguity) behavior+=Statemachine
	 */
	protected void emit_XliaSystem_StatemachineKeyword_10_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@model:' | '@prototype:' | '@instance:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) '@behavior:' behavior+=Behavior
	 *     instance+=InstanceMachine (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     instance+=InstanceMachine (ambiguity) main=MoeBehavior
	 *     machine+=AnyMachineBlock (ambiguity) '@behavior:' behavior+=Behavior
	 *     machine+=AnyMachineBlock (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     machine+=AnyMachineBlock (ambiguity) main=MoeBehavior
	 *     procedure+=Procedure (ambiguity) '@behavior:' behavior+=Behavior
	 *     procedure+=Procedure (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     procedure+=Procedure (ambiguity) main=MoeBehavior
	 *     routine+=Routine (ambiguity) '@behavior:' behavior+=Behavior
	 *     routine+=Routine (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     routine+=Routine (ambiguity) main=MoeBehavior
	 */
	protected void emit_XliaSystem___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('<' 'moc:'? ('and' | 'or') '>')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'system' (ambiguity) name=ESIdentifier
	 *     dense_timed?='timed#dense' 'system' (ambiguity) name=ESIdentifier
	 *     discrete_timed?='timed#discrete' 'system' (ambiguity) name=ESIdentifier
	 *     input_enabled?='input_enabled' 'system' (ambiguity) name=ESIdentifier
	 *     timed?='timed' 'system' (ambiguity) name=ESIdentifier
	 *     unsafe?='unsafe' 'system' (ambiguity) name=ESIdentifier
	 *     visibility=VisibilityKind 'system' (ambiguity) name=ESIdentifier
	 */
	protected void emit_XliaSystem___LessThanSignKeyword_2_0_MocKeyword_2_1_q___AndKeyword_2_2_0_or_OrKeyword_2_2_1___GreaterThanSignKeyword_2_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@routine:' | '@macro:')?
	 *
	 * This ambiguous syntax occurs at:
	 *     routine+=Routine (ambiguity) routine+=Routine
	 */
	protected void emit_XliaSystem___MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:'))?
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_XliaSystem___ModelKeyword_9_1_0_q_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('@property:' | '@public:' | '@protected:' | '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     buffer+=Buffer (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     buffer+=Buffer (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer (ambiguity) procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     buffer+=BufferPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     buffer+=BufferProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     buffer+=BufferPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) routine+=Routine
	 *     channel+=Channel (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     channel+=Channel (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     channel+=Channel (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     channel+=Channel (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=Channel (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel (ambiguity) procedure+=Procedure
	 *     channel+=Channel (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     channel+=ChannelPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     channel+=ChannelProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     channel+=ChannelPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) routine+=Routine
	 *     function+=Function (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     function+=Function (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     function+=Function (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     function+=Function (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     function+=Function (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=Function (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function (ambiguity) procedure+=Procedure
	 *     function+=Function (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     function+=FunctionPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) routine+=Routine
	 *     function+=FunctionProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     function+=FunctionProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionProtected (ambiguity) procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) routine+=Routine
	 *     function+=FunctionPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     function+=FunctionPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPublic (ambiguity) procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     name=ESIdentifier '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     name=ESIdentifier '{' (ambiguity) '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) routine+=Routine
	 *     port+=Port (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     port+=Port (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     port+=Port (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     port+=Port (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     port+=Port (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=Port (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port (ambiguity) procedure+=Procedure
	 *     port+=Port (ambiguity) routine+=Routine
	 *     port+=PortPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     port+=PortPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     port+=PortPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPrivate (ambiguity) procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) routine+=Routine
	 *     port+=PortProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     port+=PortProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     port+=PortProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     port+=PortProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortProtected (ambiguity) procedure+=Procedure
	 *     port+=PortProtected (ambiguity) routine+=Routine
	 *     port+=PortPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     port+=PortPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     port+=PortPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     port+=PortPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPublic (ambiguity) procedure+=Procedure
	 *     port+=PortPublic (ambiguity) routine+=Routine
	 *     signal+=Signal (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     signal+=Signal (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     signal+=Signal (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     signal+=Signal (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=Signal (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal (ambiguity) procedure+=Procedure
	 *     signal+=Signal (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     signal+=SignalPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) routine+=Routine
	 *     signal+=SignalProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     signal+=SignalProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalProtected (ambiguity) procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) routine+=Routine
	 *     signal+=SignalPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     signal+=SignalPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPublic (ambiguity) procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     typedef+=TypeDefinition (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     typedef+=TypeDefinition (ambiguity) '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) routine+=Routine
	 *     variable+=Variable (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     variable+=Variable (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     variable+=Variable (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     variable+=Variable (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=Variable (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable (ambiguity) procedure+=Procedure
	 *     variable+=Variable (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     variable+=VariablePrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) routine+=Routine
	 *     variable+=VariableProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     variable+=VariableProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     variable+=VariableProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariableProtected (ambiguity) procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) routine+=Routine
	 *     variable+=VariablePublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* main=MoeBehavior
	 *     variable+=VariablePublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePublic (ambiguity) procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) routine+=Routine
	 */
	protected void emit_XliaSystem___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@instance:')* '@prototype:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@instance:')* '@prototype:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@instance:')? '@prototype:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 */
	protected void emit_XliaSystem_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@prototype:' | '@instance:')* '@model:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@prototype:' | '@instance:')* '@model:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 */
	protected void emit_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@prototype:' | '@instance:')? '@model:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     instance+=InstanceMachine '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     instance+=InstanceMachine '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     machine+=AnyMachineBlock '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     procedure+=Procedure '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     procedure+=Procedure '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     routine+=Routine '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     routine+=Routine '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) main=MoeBehavior
	 */
	protected void emit_XliaSystem_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:')* '@instance:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 */
	protected void emit_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@model:' | '@prototype:')* '@instance:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine (ambiguity) instance+=InstanceMachine
	 */
	protected void emit_XliaSystem_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPublic (ambiguity) port+=PortPublic
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPublic (ambiguity) port+=PortPublic
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPublic (ambiguity) port+=PortPublic
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePublic
	 *     port+=PortPublic (ambiguity) buffer+=BufferPublic
	 *     port+=PortPublic (ambiguity) channel+=ChannelPublic
	 *     port+=PortPublic (ambiguity) function+=FunctionPublic
	 *     port+=PortPublic (ambiguity) port+=PortPublic
	 *     port+=PortPublic (ambiguity) signal+=SignalPublic
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPublic (ambiguity) port+=PortPublic
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePublic (ambiguity) port+=PortPublic
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePublic
	 */
	protected void emit_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@protected:' | '@private:')* '@public:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) port+=PortPublic
	 *     buffer+=Buffer (ambiguity) signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPublic
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePublic
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPublic
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPublic
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPublic
	 *     buffer+=BufferProtected (ambiguity) port+=PortPublic
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPublic
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePublic
	 *     channel+=Channel (ambiguity) buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) function+=FunctionPublic
	 *     channel+=Channel (ambiguity) port+=PortPublic
	 *     channel+=Channel (ambiguity) signal+=SignalPublic
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPublic
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePublic
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPublic
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPublic
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPublic
	 *     channel+=ChannelProtected (ambiguity) port+=PortPublic
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPublic
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePublic
	 *     function+=Function (ambiguity) buffer+=BufferPublic
	 *     function+=Function (ambiguity) channel+=ChannelPublic
	 *     function+=Function (ambiguity) function+=FunctionPublic
	 *     function+=Function (ambiguity) port+=PortPublic
	 *     function+=Function (ambiguity) signal+=SignalPublic
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePublic
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPublic
	 *     function+=FunctionPrivate (ambiguity) port+=PortPublic
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPublic
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePublic
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPublic
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPublic
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPublic
	 *     function+=FunctionProtected (ambiguity) port+=PortPublic
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPublic
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePublic
	 *     name=ESIdentifier '{' (ambiguity) buffer+=BufferPublic
	 *     name=ESIdentifier '{' (ambiguity) channel+=ChannelPublic
	 *     name=ESIdentifier '{' (ambiguity) function+=FunctionPublic
	 *     name=ESIdentifier '{' (ambiguity) port+=PortPublic
	 *     name=ESIdentifier '{' (ambiguity) signal+=SignalPublic
	 *     name=ESIdentifier '{' (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) variable+=VariablePublic
	 *     port+=Port (ambiguity) buffer+=BufferPublic
	 *     port+=Port (ambiguity) channel+=ChannelPublic
	 *     port+=Port (ambiguity) function+=FunctionPublic
	 *     port+=Port (ambiguity) port+=PortPublic
	 *     port+=Port (ambiguity) signal+=SignalPublic
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePublic
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPublic
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPublic
	 *     port+=PortPrivate (ambiguity) function+=FunctionPublic
	 *     port+=PortPrivate (ambiguity) port+=PortPublic
	 *     port+=PortPrivate (ambiguity) signal+=SignalPublic
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePublic
	 *     port+=PortProtected (ambiguity) buffer+=BufferPublic
	 *     port+=PortProtected (ambiguity) channel+=ChannelPublic
	 *     port+=PortProtected (ambiguity) function+=FunctionPublic
	 *     port+=PortProtected (ambiguity) port+=PortPublic
	 *     port+=PortProtected (ambiguity) signal+=SignalPublic
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePublic
	 *     signal+=Signal (ambiguity) buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) function+=FunctionPublic
	 *     signal+=Signal (ambiguity) port+=PortPublic
	 *     signal+=Signal (ambiguity) signal+=SignalPublic
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePublic
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPublic
	 *     signal+=SignalPrivate (ambiguity) port+=PortPublic
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPublic
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePublic
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPublic
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPublic
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPublic
	 *     signal+=SignalProtected (ambiguity) port+=PortPublic
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPublic
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) variable+=VariablePublic
	 *     variable+=Variable (ambiguity) buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) function+=FunctionPublic
	 *     variable+=Variable (ambiguity) port+=PortPublic
	 *     variable+=Variable (ambiguity) signal+=SignalPublic
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePublic
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPublic
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPublic
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPublic
	 *     variable+=VariablePrivate (ambiguity) port+=PortPublic
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPublic
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePublic
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPublic
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPublic
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPublic
	 *     variable+=VariableProtected (ambiguity) port+=PortPublic
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPublic
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePublic
	 */
	protected void emit_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0__a_PublicKeyword_7_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferProtected (ambiguity) port+=PortProtected
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelProtected (ambiguity) port+=PortProtected
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariableProtected
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionProtected (ambiguity) function+=FunctionProtected
	 *     function+=FunctionProtected (ambiguity) port+=PortProtected
	 *     function+=FunctionProtected (ambiguity) signal+=SignalProtected
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariableProtected
	 *     port+=PortProtected (ambiguity) buffer+=BufferProtected
	 *     port+=PortProtected (ambiguity) channel+=ChannelProtected
	 *     port+=PortProtected (ambiguity) function+=FunctionProtected
	 *     port+=PortProtected (ambiguity) port+=PortProtected
	 *     port+=PortProtected (ambiguity) signal+=SignalProtected
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariableProtected
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalProtected (ambiguity) function+=FunctionProtected
	 *     signal+=SignalProtected (ambiguity) port+=PortProtected
	 *     signal+=SignalProtected (ambiguity) signal+=SignalProtected
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferProtected
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelProtected
	 *     variable+=VariableProtected (ambiguity) function+=FunctionProtected
	 *     variable+=VariableProtected (ambiguity) port+=PortProtected
	 *     variable+=VariableProtected (ambiguity) signal+=SignalProtected
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariableProtected
	 */
	protected void emit_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@private:')* '@protected:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) port+=PortProtected
	 *     buffer+=Buffer (ambiguity) signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPrivate (ambiguity) port+=PortProtected
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariableProtected
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferProtected
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelProtected
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionProtected
	 *     buffer+=BufferPublic (ambiguity) port+=PortProtected
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalProtected
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariableProtected
	 *     channel+=Channel (ambiguity) buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) function+=FunctionProtected
	 *     channel+=Channel (ambiguity) port+=PortProtected
	 *     channel+=Channel (ambiguity) signal+=SignalProtected
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPrivate (ambiguity) port+=PortProtected
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariableProtected
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferProtected
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelProtected
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionProtected
	 *     channel+=ChannelPublic (ambiguity) port+=PortProtected
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalProtected
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariableProtected
	 *     function+=Function (ambiguity) buffer+=BufferProtected
	 *     function+=Function (ambiguity) channel+=ChannelProtected
	 *     function+=Function (ambiguity) function+=FunctionProtected
	 *     function+=Function (ambiguity) port+=PortProtected
	 *     function+=Function (ambiguity) signal+=SignalProtected
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPrivate (ambiguity) port+=PortProtected
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariableProtected
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferProtected
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelProtected
	 *     function+=FunctionPublic (ambiguity) function+=FunctionProtected
	 *     function+=FunctionPublic (ambiguity) port+=PortProtected
	 *     function+=FunctionPublic (ambiguity) signal+=SignalProtected
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariableProtected
	 *     name=ESIdentifier '{' (ambiguity) buffer+=BufferProtected
	 *     name=ESIdentifier '{' (ambiguity) channel+=ChannelProtected
	 *     name=ESIdentifier '{' (ambiguity) function+=FunctionProtected
	 *     name=ESIdentifier '{' (ambiguity) port+=PortProtected
	 *     name=ESIdentifier '{' (ambiguity) signal+=SignalProtected
	 *     name=ESIdentifier '{' (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) variable+=VariableProtected
	 *     port+=Port (ambiguity) buffer+=BufferProtected
	 *     port+=Port (ambiguity) channel+=ChannelProtected
	 *     port+=Port (ambiguity) function+=FunctionProtected
	 *     port+=Port (ambiguity) port+=PortProtected
	 *     port+=Port (ambiguity) signal+=SignalProtected
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariableProtected
	 *     port+=PortPrivate (ambiguity) buffer+=BufferProtected
	 *     port+=PortPrivate (ambiguity) channel+=ChannelProtected
	 *     port+=PortPrivate (ambiguity) function+=FunctionProtected
	 *     port+=PortPrivate (ambiguity) port+=PortProtected
	 *     port+=PortPrivate (ambiguity) signal+=SignalProtected
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariableProtected
	 *     port+=PortPublic (ambiguity) buffer+=BufferProtected
	 *     port+=PortPublic (ambiguity) channel+=ChannelProtected
	 *     port+=PortPublic (ambiguity) function+=FunctionProtected
	 *     port+=PortPublic (ambiguity) port+=PortProtected
	 *     port+=PortPublic (ambiguity) signal+=SignalProtected
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariableProtected
	 *     signal+=Signal (ambiguity) buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) function+=FunctionProtected
	 *     signal+=Signal (ambiguity) port+=PortProtected
	 *     signal+=Signal (ambiguity) signal+=SignalProtected
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPrivate (ambiguity) port+=PortProtected
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariableProtected
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferProtected
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelProtected
	 *     signal+=SignalPublic (ambiguity) function+=FunctionProtected
	 *     signal+=SignalPublic (ambiguity) port+=PortProtected
	 *     signal+=SignalPublic (ambiguity) signal+=SignalProtected
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) port+=PortProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) variable+=VariableProtected
	 *     variable+=Variable (ambiguity) buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) function+=FunctionProtected
	 *     variable+=Variable (ambiguity) port+=PortProtected
	 *     variable+=Variable (ambiguity) signal+=SignalProtected
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePrivate (ambiguity) port+=PortProtected
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariableProtected
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferProtected
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelProtected
	 *     variable+=VariablePublic (ambiguity) function+=FunctionProtected
	 *     variable+=VariablePublic (ambiguity) port+=PortProtected
	 *     variable+=VariablePublic (ambiguity) signal+=SignalProtected
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariableProtected
	 */
	protected void emit_XliaSystem_____PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_PublicKeyword_7_1_0__a_ProtectedKeyword_7_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) channel+=Channel
	 *     buffer+=Buffer (ambiguity) function+=Function
	 *     buffer+=Buffer (ambiguity) port+=Port
	 *     buffer+=Buffer (ambiguity) signal+=Signal
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=Variable
	 *     channel+=Channel (ambiguity) buffer+=Buffer
	 *     channel+=Channel (ambiguity) channel+=Channel
	 *     channel+=Channel (ambiguity) function+=Function
	 *     channel+=Channel (ambiguity) port+=Port
	 *     channel+=Channel (ambiguity) signal+=Signal
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=Variable
	 *     function+=Function (ambiguity) buffer+=Buffer
	 *     function+=Function (ambiguity) channel+=Channel
	 *     function+=Function (ambiguity) function+=Function
	 *     function+=Function (ambiguity) port+=Port
	 *     function+=Function (ambiguity) signal+=Signal
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=Variable
	 *     port+=Port (ambiguity) buffer+=Buffer
	 *     port+=Port (ambiguity) channel+=Channel
	 *     port+=Port (ambiguity) function+=Function
	 *     port+=Port (ambiguity) port+=Port
	 *     port+=Port (ambiguity) signal+=Signal
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=Variable
	 *     signal+=Signal (ambiguity) buffer+=Buffer
	 *     signal+=Signal (ambiguity) channel+=Channel
	 *     signal+=Signal (ambiguity) function+=Function
	 *     signal+=Signal (ambiguity) port+=Port
	 *     signal+=Signal (ambiguity) signal+=Signal
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     variable+=Variable (ambiguity) buffer+=Buffer
	 *     variable+=Variable (ambiguity) channel+=Channel
	 *     variable+=Variable (ambiguity) function+=Function
	 *     variable+=Variable (ambiguity) port+=Port
	 *     variable+=Variable (ambiguity) signal+=Signal
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=Variable
	 */
	protected void emit_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@public:' | '@protected:' | '@private:')* '@property:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) channel+=Channel
	 *     buffer+=Buffer (ambiguity) function+=Function
	 *     buffer+=Buffer (ambiguity) port+=Port
	 *     buffer+=Buffer (ambiguity) signal+=Signal
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=Variable
	 *     buffer+=BufferPrivate (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPrivate (ambiguity) channel+=Channel
	 *     buffer+=BufferPrivate (ambiguity) function+=Function
	 *     buffer+=BufferPrivate (ambiguity) port+=Port
	 *     buffer+=BufferPrivate (ambiguity) signal+=Signal
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=Variable
	 *     buffer+=BufferProtected (ambiguity) buffer+=Buffer
	 *     buffer+=BufferProtected (ambiguity) channel+=Channel
	 *     buffer+=BufferProtected (ambiguity) function+=Function
	 *     buffer+=BufferProtected (ambiguity) port+=Port
	 *     buffer+=BufferProtected (ambiguity) signal+=Signal
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=Variable
	 *     buffer+=BufferPublic (ambiguity) buffer+=Buffer
	 *     buffer+=BufferPublic (ambiguity) channel+=Channel
	 *     buffer+=BufferPublic (ambiguity) function+=Function
	 *     buffer+=BufferPublic (ambiguity) port+=Port
	 *     buffer+=BufferPublic (ambiguity) signal+=Signal
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=Variable
	 *     channel+=Channel (ambiguity) buffer+=Buffer
	 *     channel+=Channel (ambiguity) channel+=Channel
	 *     channel+=Channel (ambiguity) function+=Function
	 *     channel+=Channel (ambiguity) port+=Port
	 *     channel+=Channel (ambiguity) signal+=Signal
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=Variable
	 *     channel+=ChannelPrivate (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPrivate (ambiguity) channel+=Channel
	 *     channel+=ChannelPrivate (ambiguity) function+=Function
	 *     channel+=ChannelPrivate (ambiguity) port+=Port
	 *     channel+=ChannelPrivate (ambiguity) signal+=Signal
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=Variable
	 *     channel+=ChannelProtected (ambiguity) buffer+=Buffer
	 *     channel+=ChannelProtected (ambiguity) channel+=Channel
	 *     channel+=ChannelProtected (ambiguity) function+=Function
	 *     channel+=ChannelProtected (ambiguity) port+=Port
	 *     channel+=ChannelProtected (ambiguity) signal+=Signal
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=Variable
	 *     channel+=ChannelPublic (ambiguity) buffer+=Buffer
	 *     channel+=ChannelPublic (ambiguity) channel+=Channel
	 *     channel+=ChannelPublic (ambiguity) function+=Function
	 *     channel+=ChannelPublic (ambiguity) port+=Port
	 *     channel+=ChannelPublic (ambiguity) signal+=Signal
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=Variable
	 *     function+=Function (ambiguity) buffer+=Buffer
	 *     function+=Function (ambiguity) channel+=Channel
	 *     function+=Function (ambiguity) function+=Function
	 *     function+=Function (ambiguity) port+=Port
	 *     function+=Function (ambiguity) signal+=Signal
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=Variable
	 *     function+=FunctionPrivate (ambiguity) buffer+=Buffer
	 *     function+=FunctionPrivate (ambiguity) channel+=Channel
	 *     function+=FunctionPrivate (ambiguity) function+=Function
	 *     function+=FunctionPrivate (ambiguity) port+=Port
	 *     function+=FunctionPrivate (ambiguity) signal+=Signal
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=Variable
	 *     function+=FunctionProtected (ambiguity) buffer+=Buffer
	 *     function+=FunctionProtected (ambiguity) channel+=Channel
	 *     function+=FunctionProtected (ambiguity) function+=Function
	 *     function+=FunctionProtected (ambiguity) port+=Port
	 *     function+=FunctionProtected (ambiguity) signal+=Signal
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=Variable
	 *     function+=FunctionPublic (ambiguity) buffer+=Buffer
	 *     function+=FunctionPublic (ambiguity) channel+=Channel
	 *     function+=FunctionPublic (ambiguity) function+=Function
	 *     function+=FunctionPublic (ambiguity) port+=Port
	 *     function+=FunctionPublic (ambiguity) signal+=Signal
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=Variable
	 *     name=ESIdentifier '{' (ambiguity) buffer+=Buffer
	 *     name=ESIdentifier '{' (ambiguity) channel+=Channel
	 *     name=ESIdentifier '{' (ambiguity) function+=Function
	 *     name=ESIdentifier '{' (ambiguity) port+=Port
	 *     name=ESIdentifier '{' (ambiguity) signal+=Signal
	 *     name=ESIdentifier '{' (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) variable+=Variable
	 *     port+=Port (ambiguity) buffer+=Buffer
	 *     port+=Port (ambiguity) channel+=Channel
	 *     port+=Port (ambiguity) function+=Function
	 *     port+=Port (ambiguity) port+=Port
	 *     port+=Port (ambiguity) signal+=Signal
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=Variable
	 *     port+=PortPrivate (ambiguity) buffer+=Buffer
	 *     port+=PortPrivate (ambiguity) channel+=Channel
	 *     port+=PortPrivate (ambiguity) function+=Function
	 *     port+=PortPrivate (ambiguity) port+=Port
	 *     port+=PortPrivate (ambiguity) signal+=Signal
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=Variable
	 *     port+=PortProtected (ambiguity) buffer+=Buffer
	 *     port+=PortProtected (ambiguity) channel+=Channel
	 *     port+=PortProtected (ambiguity) function+=Function
	 *     port+=PortProtected (ambiguity) port+=Port
	 *     port+=PortProtected (ambiguity) signal+=Signal
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=Variable
	 *     port+=PortPublic (ambiguity) buffer+=Buffer
	 *     port+=PortPublic (ambiguity) channel+=Channel
	 *     port+=PortPublic (ambiguity) function+=Function
	 *     port+=PortPublic (ambiguity) port+=Port
	 *     port+=PortPublic (ambiguity) signal+=Signal
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=Variable
	 *     signal+=Signal (ambiguity) buffer+=Buffer
	 *     signal+=Signal (ambiguity) channel+=Channel
	 *     signal+=Signal (ambiguity) function+=Function
	 *     signal+=Signal (ambiguity) port+=Port
	 *     signal+=Signal (ambiguity) signal+=Signal
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=Variable
	 *     signal+=SignalPrivate (ambiguity) buffer+=Buffer
	 *     signal+=SignalPrivate (ambiguity) channel+=Channel
	 *     signal+=SignalPrivate (ambiguity) function+=Function
	 *     signal+=SignalPrivate (ambiguity) port+=Port
	 *     signal+=SignalPrivate (ambiguity) signal+=Signal
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=Variable
	 *     signal+=SignalProtected (ambiguity) buffer+=Buffer
	 *     signal+=SignalProtected (ambiguity) channel+=Channel
	 *     signal+=SignalProtected (ambiguity) function+=Function
	 *     signal+=SignalProtected (ambiguity) port+=Port
	 *     signal+=SignalProtected (ambiguity) signal+=Signal
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=Variable
	 *     signal+=SignalPublic (ambiguity) buffer+=Buffer
	 *     signal+=SignalPublic (ambiguity) channel+=Channel
	 *     signal+=SignalPublic (ambiguity) function+=Function
	 *     signal+=SignalPublic (ambiguity) port+=Port
	 *     signal+=SignalPublic (ambiguity) signal+=Signal
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) function+=Function
	 *     typedef+=TypeDefinition (ambiguity) port+=Port
	 *     typedef+=TypeDefinition (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=Variable
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) function+=Function
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) port+=Port
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) variable+=Variable
	 *     variable+=Variable (ambiguity) buffer+=Buffer
	 *     variable+=Variable (ambiguity) channel+=Channel
	 *     variable+=Variable (ambiguity) function+=Function
	 *     variable+=Variable (ambiguity) port+=Port
	 *     variable+=Variable (ambiguity) signal+=Signal
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=Variable
	 *     variable+=VariablePrivate (ambiguity) buffer+=Buffer
	 *     variable+=VariablePrivate (ambiguity) channel+=Channel
	 *     variable+=VariablePrivate (ambiguity) function+=Function
	 *     variable+=VariablePrivate (ambiguity) port+=Port
	 *     variable+=VariablePrivate (ambiguity) signal+=Signal
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=Variable
	 *     variable+=VariableProtected (ambiguity) buffer+=Buffer
	 *     variable+=VariableProtected (ambiguity) channel+=Channel
	 *     variable+=VariableProtected (ambiguity) function+=Function
	 *     variable+=VariableProtected (ambiguity) port+=Port
	 *     variable+=VariableProtected (ambiguity) signal+=Signal
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=Variable
	 *     variable+=VariablePublic (ambiguity) buffer+=Buffer
	 *     variable+=VariablePublic (ambiguity) channel+=Channel
	 *     variable+=VariablePublic (ambiguity) function+=Function
	 *     variable+=VariablePublic (ambiguity) port+=Port
	 *     variable+=VariablePublic (ambiguity) signal+=Signal
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=Variable
	 */
	protected void emit_XliaSystem_____PrivateKeyword_7_3_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PropertyKeyword_7_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=BufferPrivate (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPrivate (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPrivate (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPrivate (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPrivate (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPrivate (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPrivate (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPrivate (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPrivate (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPrivate (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPrivate (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPrivate (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPrivate (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPrivate (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPrivate (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPrivate (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPrivate (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPrivate (ambiguity) port+=PortPrivate
	 *     function+=FunctionPrivate (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPrivate (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPrivate (ambiguity) variable+=VariablePrivate
	 *     port+=PortPrivate (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPrivate (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPrivate (ambiguity) function+=FunctionPrivate
	 *     port+=PortPrivate (ambiguity) port+=PortPrivate
	 *     port+=PortPrivate (ambiguity) signal+=SignalPrivate
	 *     port+=PortPrivate (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPrivate (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPrivate (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPrivate (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPrivate (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPrivate (ambiguity) port+=PortPrivate
	 *     signal+=SignalPrivate (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPrivate (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPrivate (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePrivate (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePrivate (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePrivate (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePrivate (ambiguity) port+=PortPrivate
	 *     variable+=VariablePrivate (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePrivate (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePrivate (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('@property:' | '@public:' | '@protected:')* '@private:')+
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer (ambiguity) buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferProtected (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferProtected (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferProtected (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferProtected (ambiguity) port+=PortPrivate
	 *     buffer+=BufferProtected (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferProtected (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferProtected (ambiguity) variable+=VariablePrivate
	 *     buffer+=BufferPublic (ambiguity) buffer+=BufferPrivate
	 *     buffer+=BufferPublic (ambiguity) channel+=ChannelPrivate
	 *     buffer+=BufferPublic (ambiguity) function+=FunctionPrivate
	 *     buffer+=BufferPublic (ambiguity) port+=PortPrivate
	 *     buffer+=BufferPublic (ambiguity) signal+=SignalPrivate
	 *     buffer+=BufferPublic (ambiguity) typedef+=TypeDefinition
	 *     buffer+=BufferPublic (ambiguity) variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) port+=PortPrivate
	 *     channel+=Channel (ambiguity) signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelProtected (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelProtected (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelProtected (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelProtected (ambiguity) port+=PortPrivate
	 *     channel+=ChannelProtected (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelProtected (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelProtected (ambiguity) variable+=VariablePrivate
	 *     channel+=ChannelPublic (ambiguity) buffer+=BufferPrivate
	 *     channel+=ChannelPublic (ambiguity) channel+=ChannelPrivate
	 *     channel+=ChannelPublic (ambiguity) function+=FunctionPrivate
	 *     channel+=ChannelPublic (ambiguity) port+=PortPrivate
	 *     channel+=ChannelPublic (ambiguity) signal+=SignalPrivate
	 *     channel+=ChannelPublic (ambiguity) typedef+=TypeDefinition
	 *     channel+=ChannelPublic (ambiguity) variable+=VariablePrivate
	 *     function+=Function (ambiguity) buffer+=BufferPrivate
	 *     function+=Function (ambiguity) channel+=ChannelPrivate
	 *     function+=Function (ambiguity) function+=FunctionPrivate
	 *     function+=Function (ambiguity) port+=PortPrivate
	 *     function+=Function (ambiguity) signal+=SignalPrivate
	 *     function+=Function (ambiguity) typedef+=TypeDefinition
	 *     function+=Function (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionProtected (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionProtected (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionProtected (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionProtected (ambiguity) port+=PortPrivate
	 *     function+=FunctionProtected (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionProtected (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionProtected (ambiguity) variable+=VariablePrivate
	 *     function+=FunctionPublic (ambiguity) buffer+=BufferPrivate
	 *     function+=FunctionPublic (ambiguity) channel+=ChannelPrivate
	 *     function+=FunctionPublic (ambiguity) function+=FunctionPrivate
	 *     function+=FunctionPublic (ambiguity) port+=PortPrivate
	 *     function+=FunctionPublic (ambiguity) signal+=SignalPrivate
	 *     function+=FunctionPublic (ambiguity) typedef+=TypeDefinition
	 *     function+=FunctionPublic (ambiguity) variable+=VariablePrivate
	 *     name=ESIdentifier '{' (ambiguity) buffer+=BufferPrivate
	 *     name=ESIdentifier '{' (ambiguity) channel+=ChannelPrivate
	 *     name=ESIdentifier '{' (ambiguity) function+=FunctionPrivate
	 *     name=ESIdentifier '{' (ambiguity) port+=PortPrivate
	 *     name=ESIdentifier '{' (ambiguity) signal+=SignalPrivate
	 *     name=ESIdentifier '{' (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) variable+=VariablePrivate
	 *     port+=Port (ambiguity) buffer+=BufferPrivate
	 *     port+=Port (ambiguity) channel+=ChannelPrivate
	 *     port+=Port (ambiguity) function+=FunctionPrivate
	 *     port+=Port (ambiguity) port+=PortPrivate
	 *     port+=Port (ambiguity) signal+=SignalPrivate
	 *     port+=Port (ambiguity) typedef+=TypeDefinition
	 *     port+=Port (ambiguity) variable+=VariablePrivate
	 *     port+=PortProtected (ambiguity) buffer+=BufferPrivate
	 *     port+=PortProtected (ambiguity) channel+=ChannelPrivate
	 *     port+=PortProtected (ambiguity) function+=FunctionPrivate
	 *     port+=PortProtected (ambiguity) port+=PortPrivate
	 *     port+=PortProtected (ambiguity) signal+=SignalPrivate
	 *     port+=PortProtected (ambiguity) typedef+=TypeDefinition
	 *     port+=PortProtected (ambiguity) variable+=VariablePrivate
	 *     port+=PortPublic (ambiguity) buffer+=BufferPrivate
	 *     port+=PortPublic (ambiguity) channel+=ChannelPrivate
	 *     port+=PortPublic (ambiguity) function+=FunctionPrivate
	 *     port+=PortPublic (ambiguity) port+=PortPrivate
	 *     port+=PortPublic (ambiguity) signal+=SignalPrivate
	 *     port+=PortPublic (ambiguity) typedef+=TypeDefinition
	 *     port+=PortPublic (ambiguity) variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) port+=PortPrivate
	 *     signal+=Signal (ambiguity) signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalProtected (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalProtected (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalProtected (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalProtected (ambiguity) port+=PortPrivate
	 *     signal+=SignalProtected (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalProtected (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalProtected (ambiguity) variable+=VariablePrivate
	 *     signal+=SignalPublic (ambiguity) buffer+=BufferPrivate
	 *     signal+=SignalPublic (ambiguity) channel+=ChannelPrivate
	 *     signal+=SignalPublic (ambiguity) function+=FunctionPrivate
	 *     signal+=SignalPublic (ambiguity) port+=PortPrivate
	 *     signal+=SignalPublic (ambiguity) signal+=SignalPrivate
	 *     signal+=SignalPublic (ambiguity) typedef+=TypeDefinition
	 *     signal+=SignalPublic (ambiguity) variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) port+=PortPrivate
	 *     variable+=Variable (ambiguity) signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) variable+=VariablePrivate
	 *     variable+=VariableProtected (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariableProtected (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariableProtected (ambiguity) function+=FunctionPrivate
	 *     variable+=VariableProtected (ambiguity) port+=PortPrivate
	 *     variable+=VariableProtected (ambiguity) signal+=SignalPrivate
	 *     variable+=VariableProtected (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariableProtected (ambiguity) variable+=VariablePrivate
	 *     variable+=VariablePublic (ambiguity) buffer+=BufferPrivate
	 *     variable+=VariablePublic (ambiguity) channel+=ChannelPrivate
	 *     variable+=VariablePublic (ambiguity) function+=FunctionPrivate
	 *     variable+=VariablePublic (ambiguity) port+=PortPrivate
	 *     variable+=VariablePublic (ambiguity) signal+=SignalPrivate
	 *     variable+=VariablePublic (ambiguity) typedef+=TypeDefinition
	 *     variable+=VariablePublic (ambiguity) variable+=VariablePrivate
	 */
	protected void emit_XliaSystem_____PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a_PrivateKeyword_7_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '->' '(' resultSet=FormalParameterSet
	 *     (rule start) (ambiguity) '->' resultSet=FormalParameterSet
	 *     (rule start) (ambiguity) bodyBlock=BlockStatement
	 */
	protected void emit_moeRoutine___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
}
